CakePHP 2.1 HABTM没有获得相关信息

时间:2012-05-08 20:21:16

标签: cakephp

我有一个问题,整个下午一直困扰着我:

我正在制作吉他装备,所以我使用的是齿轮物品表,用户表和齿轮到用户桥接表。也就是说,用户可以拥有多个项目,并且项目可以属于多个用户。所以 HABTM

项目属于某个品牌(例如Fender - Stratocaster),因此我在商品模型中设置了 belongsTo 关系,并在品牌中设置了 HasMany 关系模型。当我检查物品控制器中的输出时,齿轮及其相关品牌的数据就在那里。

用户控制面板(和类似区域)基本上列出了所有用户拥有的项目。在设置用户和项目之间的 HABTM 关系后,我检查了控制器的输出。当项目的信息和桥牌表信息都出现时,项目的相关品牌信息没有出现。结果应该基本上是一个项目列表,包括品牌信息,就好像它是“where user_id = x”。相反,它似乎只是抓住项目信息而不是它的关系。

我有什么遗漏或愚蠢的错误吗?感谢。

2 个答案:

答案 0 :(得分:2)

您是否考虑在对用户执行recursive时设置/更改find()属性? 设置的recursive越高,就会找到更深层次的关联。

另一种方法可能是在User上使用Containable行为:

$this->User->find('first',array(
    'conditions'=>array('User.id'=>1),  
    'contain' => array('Item'=>array('Brand'))
));

答案 1 :(得分:1)

设置递归级别,或者您可以使用ContainableBehavior