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

如何在PHP中使用MVC从结果集中获取额外属性,php,model-view-controller,object,methods,model,Php,Model View Controller,Object,Methods,Model,我有以下结构:程序>项目>阶段 查看这些模型的“我的视图”文件是相当标准的,在视图文件中可以看到如下内容: <?php foreach ($programs as $p):?> <p><?php echo $p->getName()?></p> <?php endforeach?> 我的$PROGRAMES变量只是一个程序对象数组 现在,作为一个例子,让我们假设我有一个页面,它将列出带有其父项目和程序名称的阶段。我的SQL

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

查看这些模型的“我的视图”文件是相当标准的,在视图文件中可以看到如下内容:

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

我的$PROGRAMES变量只是一个程序对象数组

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


有人能就如何最好地完成这类事情提供一些见解吗?谢谢。

您将获得类似数组的数据,其中包含所有字段 像这样的

$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',
           )
         )
      )
    )
  )
);