为了保持简单,我有一个用户模型,其中有很多帖子。
[User] id
[Post] id, user_id
如何撰写$this->User->find('all', array('conditions' => $conditions)
以获取所有没有帖子的用户?
答案 0 :(得分:2)
假设Post belongsTo User:
$this->User->Post->find(
'all',
array(
'fields' => array('User.id', 'user_id', 'COUNT(user_id) AS posts_count'),
'group' => 'user_id HAVING posts_count = 0'
)
)
答案 1 :(得分:1)
在User模型中创建一个函数并尝试下面的代码:它将为所有没有帖子的User.id提供。
$options = array(
'conditions'=>array('Post.id is NULL')
'joins' => array(
array(
'alias' => 'Post',
'table' => ‘posts’,
'type' => 'LEFT',
'conditions' => array(
'Post.user_id = User.id',
),
)
),
'fields' => array('User.id')
);
$returnData = $this->find('list',$options);