2016-08-21 85 views
0

Post :: with('comments.owner') - > get();嵌套预先加载约束

此查询将为我们提供所有帖子,其评论和评论所有者。

但是我怎么能得到所有的帖子,其最后5条评论和作者的每个评论。任何人都可以帮忙吗?

这里是架构 帖子 - 标识 - 内容 评论 - ID - commented_id(USER_ID) - user_id说明 用户 - ID - FULL_NAME 感谢

+0

请发表您的数据库模式 – jaysingkar

+0

发布 - id - content 评论 - id - commented_id(user_id) - user_id User - id - full_name – maj

+0

https://softonsofa.com/tweaking-eloquent-relations-how-to-get-n-related-model s-per-parent/ –

回答

1

试试这个:

$posts = Post::with(['comments'=>function($query){ 
       $query->orderBy('created_at','desc')->limit(5); 
      }]) 
      ->with('comments.author') 
      ->get(); 
+0

对不起,这没有按预期工作。它返回所有评论。我只需要最后5 请参阅下面的查询跑 SELECT * FROM'posts' SELECT * FROM'comments'其中'在( '6', '7','评论.'post_id' '8' ,'9','10','11','12','13','14','15','16','17','18','19','20',' 21','22','23','24','25','26') – maj

+0

两条select语句? – jaysingkar

+0

是急切加载不会使用加入。它产生多个查询 – maj