我一直试图在同一页面显示来自不同模型的数据,但仍然无法使其工作。 这是关系中间人模型从不同型号中检索数据
客户的hasMany工作
工作属于关联客户
工作的hasMany Jobtask
Jobtask属于关联工作
Jobtask的hasMany Jobtasksvehicle
Jobtasksvehicle属于关联Jobtask和车辆
车辆的hasMany Jobtasksvehicle
这是我的工作控制器
function sch($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid job', true));
$this->redirect(array('action' => 'index'));
}
$job = $this->Job->find('first', array(
'conditions' => array('Job.id' => $id),
'contain' => array('Customer',
'Jobtask' => array(
'Jobtasksvehicle' => array(
'Vehicle'
),
),
),
));
我要做的是显示来自Customer,Job,Jobtask,Jobtasksvehicle,Vehicle models的数据。 我可以从Customer,Job和Jobtask中获取数据显示,但不能从Jobtasksvehicle和Vehicle模型中获取数据。我想显示分配给每个工作任务的每个车辆(车辆模型)。
这是我想在同一张表中显示jobtask和Vehicle模型的地方。
<?php
$i = 0;
foreach ($job['Jobtask'] as $jobtask):
$class = null;
if ($i++ % 2 == 0) {
$class = ' class="altrow"';
}
?>
<tr<?php echo $class;?>>
<td><?php echo $jobtask['id'];?></td>
<td><?php echo $jobtask['job_id'];?></td>
<td><?php echo $jobtask['rate_id'];?></td>
<td><?php echo $jobtask['type'];?></td>
<td><?php echo $jobtask['date'];?></td>
<td><?php echo $jobtask['starttime'];?></td>
<td><?php echo $jobtask['timeband'];?></td>
<td><?php echo $jobtask['settlement'];?></td>
<td><?php echo $job['Vehicle']['vehiclemodel'];?></td>
</tr>
<?php endforeach; ?>
</table>
?>
查找功能似乎是正确的。你有没有尝试调试$ job变量?您查看的记录是否可能没有Jobtasksvehicle和Vehicle关联的记录? –