2012-11-24 49 views
1

我有關聯:CakePHP的模型協會 - 找到父模型的其他孩子

  • 產品 - >的hasMany - > ProductOption
  • 產品 - >的hasMany - > ProductImage

我想找到產品數據包括ProductOption.id

當我這樣做:

$this->Basket->Product->ProductOption->find('first',array(
    'contain' => array(
     'Product' => array(
      'ProductOption' => array(
       'conditions' => array('ProductOption.id = '.$id) 
      ), 
      'ProductImage' 
     ) 
    ) 
)); 

我得到這個:

array(
    'ProductOption' => array(
     'id' => '46', 
     'product_id' => '9', 
    ), 
    'Product' => array(
     'id' => '9', 
     'name' => 'Some product', 
    ) 
) 

這是大多數我想要什麼,但沒有 'ProductImage' 包括在內。我如何得到這個數組?

回答

0

我認爲你使用了太多的遞歸。如果您使用的產品中可容納,使查詢就可以了,不ProductOption,像這樣:

$this->Basket->Product->find('first',array(
    'contain' => array(  
    'ProductOption' => array(
      'conditions' => array('ProductOption.id = '.$id) 
    ), 
    'ProductImage' 
)  
)); 

而且無需使用產品。「包含」陣列,它已經猜到了。

(我沒有嘗試這一點,但幾乎可以肯定)

+0

其實這找到正確的ProductOption但where子句的產品型號不給任何:它的查詢(其中1 = 1) – charliefarley321