Model-> find()条件没有相关结果

时间:2013-12-27 10:58:03

标签: cakephp cakephp-2.3

为了保持简单,我有一个用户模型,其中有很多帖子。

[User] id
[Post] id, user_id

如何撰写$this->User->find('all', array('conditions' => $conditions)以获取所有没有帖子的用户?

2 个答案:

答案 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);