Cakephp 从不同模型检索数据
我一直试图在同一页中显示来自不同模型的数据,但仍然无法使其正常工作。 这就是模型之间的关系 客户有很多工作 属于客户的工作 Job有许多Job任务 作业任务属于作业 Jobtask有许多Jobtasksvehicle 作业任务车辆属于作业任务和车辆 车辆有许多工作任务车辆 这是我的工作控制器Cakephp 从不同模型检索数据,cakephp,model,Cakephp,Model,我一直试图在同一页中显示来自不同模型的数据,但仍然无法使其正常工作。 这就是模型之间的关系 客户有很多工作 属于客户的工作 Job有许多Job任务 作业任务属于作业 Jobtask有许多Jobtasksvehicle 作业任务车辆属于作业任务和车辆 车辆有许多工作任务车辆 这是我的工作控制器 function sch($id = null) { if (!$id) { $this->Session->setFlash(__('Invalid job',
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'
),
),
),
)))
我要做的是显示来自客户、作业、作业任务、作业任务车辆、车型的数据。
我可以从客户、作业和作业任务中获取数据显示,但不能从作业任务车辆和车型中获取数据显示。我想显示分配给每个作业任务的每个车辆(vehiclemodel)
这就是我想在同一个表中显示jobtask和车辆模型的地方
<?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>
?>一切似乎都很好,您需要将查找结果放在recursive=3中,如下所示
$job = $this->Job->find('first', array(
'conditions' => array('Job.id' => $id),
'recursive' => 3,
'contain' => array('Customer',
'Jobtask' => array(
'Jobtasksvehicle' => array(
'Vehicle'
),
),
),
));
但是containable行为仍然应该计算递归自动,确保您正在加载containable行为
查一下这本书
还要检查是否正在执行sql查询,如果出现sql查询,您可能需要指定字段(您可能希望使用Job.*o Vehicle.*获取所有字段…查找功能似乎是正确的。您是否尝试调试$job变量?您查看的记录是否可能没有JobsTasksVehicle和Vehicle关联?