我需要能够指定关系的条件(一对多)。
示例;我们有一个帖子有很多评论,但我只想要用户A发表评论的帖子,然后返回帖子对象。
我目前能想到的唯一方法就是使用Fluent查询,它不会返回我想要的Post对象!
编辑:
评论已经由用户A发出。发表评论的用户与发布的关系不是直接关系。它将通过评论表。
RE EDIT:
是否也可以说有不同的帖子?而不是返回3个相同的Post对象?
答案 0 :(得分:7)
您可以查询关系。你最终会得到这样的东西:
$postsWithComments = $user->posts()->has('comments', '>=', 1)->get();
以下是文档摘录:http://laravel.com/docs/eloquent
查询关系
访问模型的记录时,您可能希望根据关系的存在来限制结果。例如,您希望提取至少包含一条评论的所有博文。为此,您可以使用has方法:
选择时检查关系
$posts = Post::has('comments')->get();
您还可以指定运算符和计数:
$posts = Post::has('comments', '>=', 3)->get();