cakephp模型关联 - 找到父模型的其他子项

时间:2012-11-24 19:15:47

标签: cakephp

我有协会:

  • 产品 - > hasMany - > ProductOption
  • 产品 - > hasMany - > ProductImage

我想通过ProductOption.id找到包含ProductImage的产品数据

当我这样做时:

$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'。我如何在数组中得到它?

1 个答案:

答案 0 :(得分:0)

我认为您使用过多的递归。如果您在产品上使用Containable,请对其进行查询,而不是ProductOption,如下所示:

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

无需使用产品'包含'数组,它已经猜到了。

(我没试过,但几乎可以肯定)