1

我有关联:

  • 产品 -> 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”。我如何在数组中得到这个?

4

1 回答 1

0

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

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

并且不需要在“包含”数组上使用 Product,它已经被猜到了。

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

于 2012-11-24T19:25:10.310 回答