CakePHP:根据另一个表中的值过滤一个表上的搜索

时间:2017-01-24 15:49:47

标签: mysql cakephp

我有一个包含用户信息的表,型号名称是User

User
----
id    full_name (for demo purposes)
1     john doe
2     jane doe
3     john smith
4     jane smith

User模型链接到另一个名为Record

的模型
Record
------
userid(FK)
1
1
3
3
3

我的控制器中还有一个例程,可以根据某些标准查找用户。

$leads = $this->User->find('list',array(
'fields' => array('User.id','User.full_name'),
'order' => array('User.full_name ASC'),
'conditions'=>array('AND'=>array(
'NOT'=>array('User.deleted_record'=>1),
 array('NOT'=>array('User.username'=>'root',
  array('User.username'=>'testuser')))
        ))
));

这适用于返回用户的下拉列表。我现在需要做的是根据用户列表是否在Record模型中有一个或多个记录来进一步过滤用户列表。如果他们不这样做,他们就不应该出现。

User
----
id
1
3

我猜这将需要IN条款和加入,但我不知道" Cake"在我的代码中设置它的方法。

1 个答案:

答案 0 :(得分:2)

如果您已经在各个模型中的用户和记录表之间建立了关系,那么您应该在UsersController中尝试这个:

$userList = $this->User->Record->find('list', array('group' => array('Record.userid')));