2011-05-04 54 views
0

我有2個數據庫表,其連接如下:找關聯的模型螺紋導致的CakePHP

ProjectProduct hasMany Bde 
Bde belongsTo ParentBde/Bde hasMany ChildBde 

該第一關聯是新的,現在將加入到該應用程序。從那以後,我用$this->Bde->find('threaded')來獲得這些記錄的線程數組。

現在我需要/想要查詢ProjectProduct表並希望使用包含行爲來獲取所有關聯的Bdes。

現在我想知道:是否有可能(以Cake的方式)仍然通過調用ProjectProduct查找調用線程結果? 我試過$this->ProjectProduct->find('threaded', array('contain' => 'Bde')),但是這會嘗試在ProjectProduct上得到線程結果。

我期待像這樣的數組:

Array (
    [ProjectProduct] => Array (
     [id] => 17, 
     [Bde] => Array (
      [0] => Array (
       [id] => 1, 
       [project_product_id] => 17, 
       [children] => Array() 
      ) 
     ) 
    ) 
) 

回答

0

因爲我找不到任何信息如何可以在一個呼叫或「Cakish」的方式來完成,我已經做到了這樣的:

$project_products = $this->Project->ProjectProduct->find('all'); 
    foreach ($project_products as $key => $project_product) { 
     $project_products[$key]['Bde'] = $this->Project->Bde->find('threaded', array('conditions' => array('Bde.project_product_id' => $project_product['ProjectProduct']['id']))); 
    } 

如果有人有這樣做的更好的方式,我真的很感激任何其他的想法!