Zend и data mappers — как получить данные из нескольких таблиц

Я новичок в концепции Data Mappers, и до сих пор я использовал только Active Record.

У меня есть следующие таблицы MySQL:

Календарь

  • Я бы
  • idEvent
  • Дата

События

  • Я бы
  • название

Мне нужно получить имена и даты всех событий, которые произошли до сегодняшнего дня.

Какая структура наиболее эффективна для архивирования? Я очень запутался, если мне нужно создавать объекты для каждой записи Календаря, и как я буду связывать idEvent из таблицы календаря и id из таблицы событий.

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 объект связан с ним.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]