2011-10-24 9 views
0

私はforeachを使用して同じテーブルに異なるモデルの異なるデータを表示しようとしています。これは、モデルcakephp異なるモデルの異なるデータを表示するためにforeachを使用する

カスタマーhasManyの仕事

仕事belongsToのカスタマー

仕事hasManyのJobtask

Jobtask belongsToの仕事

Jobtask hasManyのJobtasksvehicle

Jobtasksvehicle belongsToのJobtaskと車両との間の関係であります

車両hasManyのJobtasksvehicle

は、これはこれは私が収容可能振る舞いを使用して、私は$仕事をデバッグするとき、私はjobtask、仕事やjobtasksvehicleからデータを取得

<div class="jobs index"> 
<h2><?php __('Jobs Summary');?></h2> 
<table cellpadding="0" cellspacing="0"> 
<tr> 
     <th>Job Id</th> 
     <th>Jobtasks ID</th> 

     <th>Customer</th> 
     <th>Vehicle ID</th> 


</tr> 
<?php 
$i = 0; 
foreach ($jobs as $job): 
    $class = null; 
    if ($i++ % 2 == 0) { 
     $class = ' class="altrow"'; 
    } 
?> 
<tr<?php echo $class;?>> 
    <td><?php echo $job['Job']['id']; ?>&nbsp;</td> 

    <td><?php echo $job['Jobtask']['id']; ?>&nbsp;</td>  

    <td><?php echo $job['Customer']['full_name']; ?>&nbsp;</td>  

    <td><?php echo $job['Jobtasksvehicle']['vehicle_id']; ?>&nbsp;</td> 
</tr> 
    <?php endforeach; ?> 
</table> 
    <?php echo debug($job); ?> 
    </div> 

私の見解である私のコントローラ

function viewsch($id = null) { 
    $jobs = $this->Jobtask->find('all', array(

'contain' => array('Customer', 
    'Job' => array('conditions' => array('Job.id =' => 'Jobtask.job_id')), 
     'Jobtasksvehicle'=> array('conditions' => array('Jobtasksvehicle.vehicle_id = Vehicle.id')) 

))); 
    $this->set(compact('jobs'));   
} 

です顧客からのものではありません。しかし、jobtasks車両にはデータはありません。私はすでにjobtasksvehicleをjobtaskに割り当てています。表示されているジョブとジョブタスクのみが表示され、残りの場合は未定義インデックス:顧客と未定義インデックス:vehicle_idと表示されます。

私を助けてください。私のプロジェクトにとっては本当に重要です。ありがとう。

注:SQLに表示されているものは、このようなものです。

CUSTOMERS c、JOBJ、JOBTASKS t、JOBTASKSVEHICLES tv、tv.jobtask_id = t.id、t.job_id = j.idおよびjからc.full_name、j.id、t.id、tv.vehicle_idを選択します。 .customer_id = c.id;あなたは

<td><?php echo debug($job); ?>&nbsp;</td> 

<td><?php echo $job['Jobtasksvehicle']['vehicle_id']; ?>&nbsp;</td> 

を変更した場合

答えて

0

は、デバッグ($ジョブ)の出力をポストでしたこれは、データが取得されているが、中に格納されているかどうかを示すのに役立ちます予期しない方法で$ job配列。

+0

私はあなたが何を言いたいのか分からない。私はちょうど$仕事のために取り出されるデータを知るためにデバッグを入れました。 –

関連する問題