我有一个问题,整个下午一直困扰着我:
我正在制作吉他装备,所以我使用的是齿轮物品表,用户表和齿轮到用户桥接表。也就是说,用户可以拥有多个项目,并且项目可以属于多个用户。所以 HABTM 。
项目属于某个品牌(例如Fender - Stratocaster),因此我在商品模型中设置了 belongsTo 关系,并在品牌中设置了 HasMany 关系模型。当我检查物品控制器中的输出时,齿轮及其相关品牌的数据就在那里。
用户控制面板(和类似区域)基本上列出了所有用户拥有的项目。在设置用户和项目之间的 HABTM 关系后,我检查了控制器的输出。当项目的信息和桥牌表信息都出现时,项目的相关品牌信息没有出现。结果应该基本上是一个项目列表,包括品牌信息,就好像它是“where user_id = x”。相反,它似乎只是抓住项目信息而不是它的关系。
我有什么遗漏或愚蠢的错误吗?感谢。
答案 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