我有一个$this->user
模型对象User
。这个对象$this->Auth->user
在我的应用控制器中填充,如下所示:
$this->user = ClassRegistry::init('User');
$this->user->set($this->Auth->user);
奇迹般有效。如果我在控制器中 print_r out $this->user 它会给我:
User Object ( [validate] => Array ( blah blah blah
一个典型的对象。现在我有一个Group
属于 a 的模型User
,并且用户有很多组。这些变量在模型中正确设置。现在我想为这个登录的特定用户找到所有组。所以我尝试了这个:
$groups = $this->user->Group->find('list', array('fields'=>array('id', 'group_name')))
关键是我想用$this->user根据$this->user中的owner_id自动过滤Group查询。对我来说,如果我有一个代表用户的特定对象并且我基于该用户进行组查询......它应该只返回相关组。
问题是 $groups 包含Groups 表中的所有条目,而不是显然我只希望当前用户提供的条目。我不明白为什么需要向"conditions"=>"user_id"=$this->Auth->user('id')
find 函数添加参数,因为我已经通过模型链指定了我正在使用的用户。
任何想法为什么这不起作用?它运行的 sql 语句只是对 Groups WHERE 1 = 1 的 SELECT (所以根本不过滤)。