使用CakePHP的结果构建表

时间:2009-09-15 07:06:51

标签: cakephp

我有一个像

这样的查询
     $report_attrid=$this->Report->find('all',array('conditions'=>array('Report.report_id'=>$report_id,'Report.user_id'=>$userId)));


   foreach($report_attrid as & $reportattrid):

      $reportattrid['Report']['attr']=$this->Attribute->find('all',array('fields'=>array('Attribute.id','Attribute.label'),'conditions'=>array('Attribute.id'=>$reportattrid['Report']['attribute_id'],'Attribute.form_id'=>$report_form_id),'order'=>'Attribute.sequence_no'));

      $reportattrid['Report']['value']=$this->Result->find('all',array('fields'=>array('Result.label','Result.value','Result.submitter_id','Result.submitter'),'conditions'=>array('Result.attribute_id'=>$reportattrid['Report']['attribute_id'],'Result.form_id'=>$report_form_id),'order'=>'Result.id'));



   endforeach;


        $this->set('Report_attrid',$report_attrid);

1. $ report_attrid的第一个将为我提供报告所需的所有数据

作为

       id Report_id title form_id  attribute_id
        1  1         r1    24          69
        2  1         r2    24          72

2.然后foreach attribute_id,我从第二个查询中的属性表中获取属性标签$ reportattrid ['Report'] ['attr'];

3。 然后Foreach Reports attribute_id我试图使用$ reportattrid ['Report'] ['value']从我的结果表中获取条目,其中给出了

首先,当attribute_id = 69时,它返回2行

as

    id form_id attribute_id value
     1    24       69         A
     2    24       69         B

然后attribute_id = 72它返回2行

as

        id form_id attribute_id value
        3    24       72         C
        4    24       69         D

一切正确但现在正在

我正在尝试构建一个在我的视图中显示的表

使用

  <table id="sampletable">
  <thead>
       <?php foreach ($Report_attrid as $report1): ?>

 <th id="headerid<?php echo $report1['Report']['attr'][0]['Attribute']['id'];?>"><?php echo $report1['Report']['attr'][0]['Attribute']['label'];?>
    </th>                 

      <?php endforeach; ?>

  <?php foreach ($Report_attrid as $report2): ?>

                  <tr>     <?php foreach ($report2['Report']['value'] as $report3): ?>

                              <td> <?php echo $report3['Result']['value'];?>   </td>

                          <?php endforeach; ?>
                 </tr>

 <?php endforeach; ?>

</table>

显示我喜欢

     Firstname experience
       A           B
       C           D

但我需要表格

       Firstname experience
        A           C
        B           D

怎么办?请建议我......

1 个答案:

答案 0 :(得分:0)

我想看一下Report,Attribute,Result的模型代码。我认为你可以更好地建立关系,通过一次调用返回数据。

从代码中看起来好像:

  • 属性hasMany Report&amp;报告belongsTo属性
  • 属性hasMany Result&amp;结果belongsTo属性

如果您在模型Linking Models Together中设置这些关系,那么您只需要拨打一个电话,所有相关记录也会出来。

一旦你完成模型让我知道,我们可以看到下一步......