2011-02-01 48 views
0

我想回到属于只有1个用户在hasAndBelongsToMany关系的数据。我不知道的情况在这里: 我收到警告:CakePHP的:检索hasAndBelongsToMany数据为用户

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

请注意这个片段的大小写,从手册:('RecipesTag.tag_id'=> 124)请记住,PHP区分大小写。 – Leo 2011-02-01 13:53:47

+0

还要注意字母顺序) – Leo 2011-02-01 13:54:14

回答

0
return $this->find('all', array('conditions' => array(
       'User.id' => $userid 
       ) 
    ) 

    ); 

如果你有$hasAndBelongsToMany集,你会不会需要指定'Food.id' => 'Usersfood.food_id','Usersfood.user_id' => $userid, `

+0

令人惊讶的我得到了同样的错误:'未知列“UsersFood.user_id”中“,其中clause`我已经按照你的 – woel 2011-02-01 09:23:39

+0

改变有你设置`hasAndBelongsToMany`? – 2011-02-01 10:26:37

0

它不应该是FoodsUser而不是UsersFood

假设你遵循约定,这是从书中:“这个新的连接表的名称需要包括所涉及的两个模型的名称,按字母顺序,并用下划线(_)分隔。”

现在下划线是为数据库表名。按照惯例,型号名称将为FoodsUser