0

第一次使用 Cake 及其可包含的行为,但它没有按预期工作......或者根本没有。

我正在尝试获取产品的配件列表。产品型号 HABTM 产品(别名“ProductRelation”)。连接表是 products_products,它有两个产品 ID - product_id 和 related_id。与此相反,我想为给定的 product_id 提取附件列表(从 related_id 列驱动的产品)

在我的产品模型中,我添加了 $actsAs = array('Containable');

在我的控制器中,即使没有条件,使用食谱中的参考对可包含的快速测试也根本无法包含产品。

debug($this->Product->find('all', array('contain' => 'ProductRelation')));

..返回数据库中每个产品的数组,以及所有相关模型 - 图像、内容选项卡、评级、评论、定价等我没有尝试对此应用任何“条件”,因为所写的调用应该将数据限制为根据食谱,产品及其 ProductRelation 数据...

有小费吗?

4

1 回答 1

2

It seems like you have recursive on. Try using the following:

debug($this->Product->find('all', array(
    'contain' => 'ProductRelation',
    'recursive' => -1
)));

If that works for you, you should start adding containable to the AppModel class and setting the recursive property to -1. This will ensure you only ever get the results you request.

NB: Cake does not join for HABTM, so you can not use ProductRelation in any conditions.

于 2012-12-07T14:30:52.703 回答