Yas*_*vov 6 php relationships laravel eloquent laravel-4
我有一个模型Post,它有一个hasMany('Comments')关系.我想通过评论关系获取所有帖子,但只有每个帖子的最新评论.并且因为有成千上万的帖子每个都有成千上万的评论,所以由于性能问题(即加载每个帖子的所有评论然后执行$ post-> comments [0] - > value),这样的选项是不可能的:
Post::with('comments' => function($query){
$query->orderBy('created_at','desc')
});
Run Code Online (Sandbox Code Playgroud)
我也不能这样做:
Post::with('comments' => function($query){
$query->orderBy('created_at','desc')->limit(1)
});
Run Code Online (Sandbox Code Playgroud)
因为这不起作用.
我完全相信我不是唯一一个遇到这个问题的人,我确实设法找到了一些"尝试解决方案"但不是一个稳定的工作代码示例.有人可以帮忙吗?
试试这个:假设您已经在 Post 模型上定义了“评论”关系。您可以通过以下方式获取属于该内容的所有评论:
App\Post::all()->comments()->orderBy('comments.created_at')->take(1)->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1990 次 |
| 最近记录: |