ROM 里的一对多关系如何添加筛选和排序?

比如:
public function comments()
  {
        return $this->hasMany('Comment','article_id','id');
  }

然后我只想显示被标记为已审核的评论,并且时间倒序排列,

这些条件,应该在什么地方加呢?
已邀请:

li53957105

赞同来自: zfeig

开始思路错了,刚刚想到正确的方法。

开始我是在view里加的条件:
@foreach ($article->comments->where('flag',1) as $comment)
......
@endforeach

一直不行。

刚刚直接在model里加条件,是可以的~
public function comments()
{
return $this->hasMany('Comment','article_id','id')->where('flag',1)->orderby('created_at','desc');
}

安正超

赞同来自:

在views里你写错了,应该这样:
@foreach ($article->comments()->where('flag',1)->get() as $comment)

......

@endforeach

$article->comments 返回结果,$article->comments()返回query builder

幸福

赞同来自:

主表对应多条评论,现在主表要根据评论数的多少进行排序,该怎么做呢?

要回复问题请先登录注册