Laravel 4条件关系

Ben*_*Ben 0 php laravel laravel-4

我需要能够指定关系的条件(一对多).

例子是; 我们有一个帖子有很多评论,但我只想要用户A发表评论的帖子,然后返回帖子对象.

我目前可以想到这样做的唯一方法是使用Fluent查询,它不会返回我想要的Post对象!

编辑:

评论必须由用户A完成.发表评论的用户与帖子的关系不是直接关系.它将通过评论表.

RE编辑:

是否也可以说有不同的帖子?而不是返回3个相同的Post对象?

Mar*_*ale 7

您可以查询关系.你会得到这样的东西:

$postsWithComments = $user->posts()->has('comments', '>=', 1)->get();
Run Code Online (Sandbox Code Playgroud)

以下是文档摘录:http://laravel.com/docs/eloquent

查询关系

访问模型的记录时,您可能希望根据关系的存在来限制结果.例如,您希望提取至少包含一条评论的所有博文.为此,您可以使用has方法:

选择时检查关系

$posts = Post::has('comments')->get();
Run Code Online (Sandbox Code Playgroud)

您还可以指定运算符和计数:

$posts = Post::has('comments', '>=', 3)->get();
Run Code Online (Sandbox Code Playgroud)