【问题标题】:Zend and data mappers - how to get data from multiple tablesZend 和数据映射器 - 如何从多个表中获取数据
【发布时间】:2015-12-04 19:59:54
【问题描述】:

我是 Data Mappers 概念的新手,到目前为止我只使用过 Active Record。

我有以下 MySQL 表:

日历

  • 身份证
  • idEvent
  • 日期

活动

  • 身份证
  • 姓名

我需要获取今天之前发生的所有事件的名称和日期。

归档此文件最有效的结构是什么?如果我需要为每个日历条目创建对象,以及如何将日历表中的 idEvent 和事件表中的 id 链接起来,我会感到非常困惑。

【问题讨论】:

    标签: php oop object zend-framework datamapper


    【解决方案1】:

    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-&gt;find($calendarId); 时,都应该为您提供 Calendar 对象和链接到它的 Event 对象。

    【讨论】:

      猜你喜欢
      • 2013-01-20
      • 2011-11-29
      • 2012-10-01
      • 2020-11-07
      • 1970-01-01
      • 2011-06-14
      • 2011-08-16
      • 1970-01-01
      • 2019-02-27
      相关资源
      最近更新 更多