繁体   English   中英

多态关系中的by和Paginate

[英]Order by and Paginate in polymorphic relation

我有三个表格: postscommentsscores

comments表:

 id | body | user_id | commentable_type | commentable_id | created_at

scores表:

 id | score | user_id | scoreable_type | scoreable_id | created_at

我想获取特定帖子的评论,但这些评论应按其得分排序(投票)!

到目前为止,我已经有了此代码,但注释未按分数排序!

$limit = 2;
$post = Post::with(['comments' => function ($query) use ($limit) {
    $query->paginate($limit);
}])->find(3);
return $post;

编辑:在我的Comment模型类中,我有:

public function scores() {
    return $this->morphMany(Score::class, 'scoreable');
  }

我可以获取所有评论,然后将其分类收集,但这浪费了资源...

谢谢!

尝试通过以下方式在回调内部添加orderBy进行查询:

$limit = 2;

$post = Post::with([
    'comments.score' => function ($query){
        $query->orderBy('score', 'DESC');
    }, 
    'comments' => function ($query) use ($limit) {
        $query->take($limit);
    }
])->find(3);

return $post;
$limit = 2;
$post = Post::with(['comments.scores' => function ($query) use ($limit) {
    $query->orderBy('score', 'DESC');->paginate($limit);
}])->find(3);
return $post;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM