laravel-使用唯一用户获取最后评论
如何在laravel中每个用户只需1条评论就可以获取我最后的10条评论 我看到了,但我想以一种干净的方式用雄辩的口才来做这件事你试过了吗laravel-使用唯一用户获取最后评论,laravel,eloquent,Laravel,Eloquent,如何在laravel中每个用户只需1条评论就可以获取我最后的10条评论 我看到了,但我想以一种干净的方式用雄辩的口才来做这件事你试过了吗 Comment::groupBy('user_id')->limit(10)->get(); 如果您想获取最新的评论,请创建一个名为UserComment的类,为每个用户存储最新的评论\u id,并为创建的每个新评论更新它,然后您可以通过 UserComment::orderBy('updated_at')->limit(10)->g
Comment::groupBy('user_id')->limit(10)->get();
如果您想获取最新的评论,请创建一个名为UserComment的类,为每个用户存储最新的评论\u id,并为创建的每个新评论更新它,然后您可以通过
UserComment::orderBy('updated_at')->limit(10)->get();
这就是逻辑:
Comment::groupBy('user_id')->orderBy('id','desc')->first()代码>如果您可以通过最高ID找到最新的注释:
$ids = Comment::selectRaw('MAX(id) id')->groupBy('user_id')->take(10)->pluck('id');
$comments = Comment::whereIn('id', $ids)->orderByDesc('id')->get();
你想达到什么目标?如果您的表格设计错误,很可能需要在Eloquent之外循环。请提供更多信息。所以我们可以帮助你。skip(0)->take(10)
is missinggroupBy不是解决方案,因为不返回最新的注释orderBy('id','desc')
或orderBy('id','created_at')
将获取最新记录,现在是如何获取10条注释,每个注释1条?。您确定不使用集合执行PHP迭代吗?groupBy不是解决方案,因为它不像其他人一样返回最新的注释。groupBy不是解决方案,因为它不返回通过MAX(id)
实现的最新注释。你试过了吗?