在Top Post列表中显示已发布的帖子

  • 本文关键字:显示 Top Post 列表 php yii
  • 更新时间 :
  • 英文 :


我用的是yii blog from Yii Framework

我想在Top Post列表中只显示已发布的帖子和最喜欢的帖子

我在组件

使用了这个代码
Yii::import('zii.widgets.CPortlet');
class topPosts extends CPortlet {
public function gettopPosts()
{
    $cirteria=new CDbCriteria();
    $cirteria->select='`post_id`,count(`id`) as `likeCount`';
    $cirteria->condition='status=1';
    $cirteria->group='post_id';
    $cirteria->order='`likeCount` DESC';
    $cirteria->limit=10;
    $result=array();
    $condition = 'status=' . Post::STATUS_PUBLISHED;
    foreach(Like::model()->findAll($cirteria) as $IDS){
        $result[]=Post::model()->findByPk($IDS->post_id, $condition);
    }
    return $result;
}
protected function renderContent()
{
    $this->render('topPosts');
}}

,但我改变了发布post到草稿post显示错误Trying to get property of non-object

变化

foreach(Like::model()->findAll($cirteria) as $IDS){
        $result[]=Post::model()->findByPk($IDS->post_id, $condition);
    }

foreach(Like::model()->findAll($cirteria) as $IDS){
            $post=Post::model()->findByPk($IDS->post_id, $condition);
            if($post instanceof Post)
                $result[] = $post;
        }
这只是我的猜测,因为我没有足够的信息,比如哪条线会出现问题。尽管如此,你总是需要检查你是否接收到object或null,除非你100%确定它的对象

最新更新