【发布时间】:2012-12-07 12:39:57
【问题描述】:
第一次使用 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 数据中......
有什么建议吗?
【问题讨论】:
-
我从未使用过 habtm 别名表,但您的包含不应该包含一组模型吗?
'contain' => array('ProductRelation') -
你的 AppModel 中有没有这个:
var $actsAs = array( 'Containable' ); -
@BarryChapman 他说他有。
-
'contain' 不需要是数组,这里被强制转换为数组github.com/cakephp/cakephp/blob/master/lib/Cake/Model/Behavior/…
-
@TimJoyce - 让我参考他所说的话:
In my Product model, I've added $actsAs = array('Containable');他在Product模型上拥有它。我声明将其添加到 AppModel 中 - 因为Containable需要在所包含的模型上处于活动状态,而不仅仅是执行包含的模型。将其添加到AppModel自然会使其可用于所有继承AppModel的模型。
标签: cakephp cakephp-2.0 containable