如何在PHP中使用MVC从结果集中获取额外的属性


How to grab extra properties from a result set using MVC in PHP

我有以下结构:程序>项目>阶段

我用来查看这些模型的视图文件是非常标准的,你会在视图文件中看到如下内容:

<?php foreach ($programs as $p):?>
<p><?php echo $p->getName()?></p>
<?php endforeach?>

我的$programs变量只是一个Program对象数组。

现在,作为一个例子,假设我有一个页面,它将列出其父项目和程序的名称的阶段。我的SQL语句执行所需的连接,我的对象数组将包含Program和Project名称的属性。我已经添加了2个方法到我的阶段模型:getProjectName()和getProgramName(),但是,我不确定这是否是正确的方法去做这件事。如果我想在这个页面上列出项目或程序的其他属性,那么我需要在Stage模型中添加一堆我认为不属于那里的额外方法。

谁能提供一些关于如何最好地完成这类事情的见解?谢谢。

你会得到数据像数组的一切字段像这样

$programs = array(
  0 =>array(
    'name' => 'prog name 1',
    'somefield' =>'some prog field 1',
    'project' => array(
      0 =>array(
         'name' => 'proj name 1',
         'somefield' =>'some proj field 1',
         'stage'  => array(
           0=>array(
             'name'  =>'stage name 1',
             'somefield' =>'some stage field 1',
           ),  
           1=>array(
             'name'  =>'stage name 2',
             'somefield' =>'some stage field 2',
           )
         )
      ),
      1 =>array(
         'name' => 'proj name 2',
         'somefield' =>'some proj field 2',
         'stage'  => array(
           0=>array(
             'name'  =>'stage name 1',
             'somefield' =>'some stage field 1',
           ),  
           1=>array(
             'name'  =>'stage name 2',
             'somefield' =>'some stage field 2',
           )
         )
      )
    )
  )
);