首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从不同的模型检索数据

从不同的模型检索数据
EN

Stack Overflow用户
提问于 2011-10-14 12:27:39
回答 1查看 110关注 0票数 0

我一直在尝试在同一页面中显示来自不同模型的数据,但仍然无法正常工作。这就是模型之间的关系

客户hasMany作业

Job belongsTo客户

作业hasMany作业任务

作业任务belongsTo作业

Jobtask hasMany作业任务车辆

作业任务车辆belongsTo作业任务和车辆

车辆hasMany作业任务车辆

这是我的作业控制器

代码语言:javascript
复制
    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获取数据显示,但不能从Jobtask车辆和车辆模型获取数据显示。我想要显示分配给每个作业任务的每个车辆(车辆模型)。

这就是我想要在同一个表中显示jobtask和车辆模型的地方。

代码语言:javascript
复制
    <?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>

?>

EN

回答 1

Stack Overflow用户

发布于 2011-10-14 21:07:47

看起来一切都很好,您需要将查找放在recursive = 3中,如下所示

代码语言:javascript
复制
  $job = $this->Job->find('first', array(
      'conditions' => array('Job.id' => $id),
      'recursive' => 3,
      'contain' => array('Customer',
            'Jobtask' => array(
               'Jobtasksvehicle' => array(
               'Vehicle'
                ),
            ),
       ),
   ));

但是可容纳的行为仍然应该计算递归自动,确保你正在加载可容纳的行为。

查看有关containable behaviour的书籍

还要检查是否正在执行sql查询,如果出现sql查询,您可能需要指定字段(您可能希望使用Job.* o Vehicle.*来获取所有字段...)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7763022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档