我有一个像
这样的查询 $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
怎么办?请建议我......
答案 0 :(得分:0)
我想看一下Report,Attribute,Result的模型代码。我认为你可以更好地建立关系,通过一次调用返回数据。
从代码中看起来好像:
如果您在模型Linking Models Together中设置这些关系,那么您只需要拨打一个电话,所有相关记录也会出来。
一旦你完成模型让我知道,我们可以看到下一步......