我是Data Mappers概念的新手,到目前为止我只使用了Active Record。
我有以下MySQL表:
日历
事件
我需要获取今天之前发生的所有事件的名称和日期。
归档此内容的最有效结构是什么?如果我需要为每个日历条目创建对象,我将变得非常困惑,以及如何从日历表和事件表中的id链接idEvent。
答案 0 :(得分:0)
在yourProjectRootFolder/application/Module/models/mappers/CalendarMapper.php
中(如果您没有使用相同的目录结构,请修改路径):
<?php
class Module_Model_Mapper_Calendar extends Your_Abstract_Mapper
{
public function rowToObject($row)
{
$calendar = new Module_Model_Calendar();
$calendar->setDate($row->date);
if(!empty($row->idEvent))
{
$eventMapper = new Module_Model_Mapper_Event();
$event = $eventMapper->find($row->idEvent);
$calendar->setEvent($event);
}
return $calendar;
}
现在,每次在控制器中调用$calendarMapper->find($calendarId);
时,都应向您提供与Calendar
对象关联的Event
对象。