Yii:在RecentComments List上显示已发布的帖子和已批准的评论

时间:2015-10-20 12:47:59

标签: php yii

我使用了yii blog from Yii Framework

我希望在RecentComments列表中显示已发布的帖子和已批准的评论

我在评论模型中使用了此代码

public function findRecentComments($limit=10)
{
    return $this->with('post')->findAll(array(
        'condition'=>'t.status='.self::STATUS_APPROVED.'status='.Post::STATUS_PUBLISHED,
        'order'=>'t.create_time DESC',
        'limit'=>$limit,
    ));
}

但在RecentComments列表中显示所有帖子和批准的评论

我想在RecentComments列表中显示发布的帖子和批准的评论

1 个答案:

答案 0 :(得分:2)

关系模型的设置条件在with()函数内完成。 我认为findAllByAttributes()更易读,所以这里使用这个函数的解决方案

public function findRecentComments($limit=10)
{
   return $this->with(array('post' => array(
                    'condition' => 'post.status=:status',
                    'params'    => array(':status' => Post::STATUS_PUBLISHED),
            )))->findAllByAttributes( array( 
                self::getTableAlias(false, false).'.status' => self::STATUS_APPROVED
            ), 
            array(
                'order'=> self::getTableAlias(false, false).'.create_time',
                'limit' => $limit
            ) );
}