我想在hasAndBelongsToMany关系中返回仅属于1个用户的数据。我不确定这里的条件: 我收到了警告:
Warning (512): SQL Error: 1054: Unknown column 'UsersFood.user_id' in 'where clause'
有人可以澄清吗?
return $this->find('all', array('conditions' => array(
'Food.id' => 'Usersfood.food_id',
'Usersfood.user_id' => $userid,
'User.id' => $userid
)
)
);
答案 0 :(得分:0)
return $this->find('all', array('conditions' => array(
'User.id' => $userid
)
)
);
如果您设置了$hasAndBelongsToMany
,则无需指定'Food.id' => 'Usersfood.food_id',
和'Usersfood.user_id' => $userid,
`
答案 1 :(得分:0)
确保您已根据此页http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM
正确定义了关系然后查看http://book.cakephp.org/view/474/Containable
具有该用户食物的特定用户。
$this->find('first', array('conditions' => array('User.id' => 123), 'contain' => array('Food')));
或每个用户的食物
$this->find('all', array('contain' => array('Food')));
答案 2 :(得分:0)
不应该 FoodsUser 而不是 UsersFood ?
假设你遵循惯例,这是来自书:“这个新的连接表的名称需要包括所涉及的两个模型的名称,按字母顺序,并用下划线分隔(_ )“。
现在下划线是数据库表名。按照惯例,模型名称将为 FoodsUser
答案 3 :(得分:0)
已找到解决方案。我完全阅读了Containable和Join,并决定选择Join。
A)。 http://book.cakephp.org/view/1047/Joining-tables
还要感谢这个评论: