2013-08-22 63 views
0

我需要能够指定关系条件(一对多)。Laravel 4条件关系

举例:我们有一个帖子,其中有很多评论,但我只希望用户A发表评论的帖子,然后返回帖子对象。

我现在认为这样做的唯一方法是使用Fluent查询,该查询不会返回我希望的Post对象!

编辑:

注释到的用户A已经取得谁提出的意见,以邮政用户的关系不是直接的一个。它将通过评论表。

RE编辑:

难道还可以说有明显的帖子?而不是返回3相同的邮政对象?

+0

你可以试试这个'$ post = Posts :: with('comments') - > where('user_id','=',$ user_id) - > get()'这会返回来自'post和评论表“只针对特定用户 –

回答

7

您可以查询关系。你最终会是这样的:

$postsWithComments = $user->posts()->has('comments', '>=', 1)->get(); 

下面是从文档的摘录:http://laravel.com/docs/eloquent

查询关系

当访问记录的模型,您可能希望限制您的基于存在关系的结果。例如,您希望获取至少有一条评论的所有博客文章。要做到这一点,你可以使用有方法:

检查关系时,选择

$posts = Post::has('comments')->get(); 

你也可以指定运营商和计数:

$posts = Post::has('comments', '>=', 3)->get(); 
+0

OP想要过滤帖子,所以他只获得由特定用户发表的评论。 – ciruvan

+0

这应该做什么然后。 –

+0

现在看起来好多了。先生,祝我早日康复。 – ciruvan