簡體   English   中英

CakePHP:根據另一個表中的值過濾對一個表的搜索

[英]CakePHP: Filter search on one table based on values from another table

我有一個包含用戶信息的表,型號名稱為User

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

用戶模型鏈接到另一個稱為記錄的模型

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')))
        ))
));

這對於返回用戶的下拉列表很好。 我現在需要做的是根據記錄模型中是否有一個或多個記錄來進一步過濾用戶列表。 如果沒有,則不應出現。

User
----
id
1
3

我猜想這將需要一個IN子句和一個聯接,但是我不知道在我的代碼中設置它的“蛋糕”方法。

如果已經在各個模型中的用戶和記錄表之間建立了關系,則應在UsersController中嘗試以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM