2014-01-10 73 views
0

我正在尝试获取用户组,并将该帖子包含在该组中。Laravel雄辩关系用户组帖子

这将返回用户组,但组也必须包含组的帖子。后已经GROUP_ID到其被贴

我的代码来获取用户:

return User::find(1)->groups; 

我的用户模型:

public function groups() 
{ 
    return $this->belongsToMany('Group'); 
} 

我的组型号:

public function posts() 
{ 
    return $this->hasMany('Post'); 
} 
+0

的底部,如果你是例如做doctrine2,你不会有这一切魔法。您可以在Annotations中定义关系,并且不依赖任何父对象(意味着更干净的代码)。你也将有更好的代码完成,并且不需要用字符串做太多。您也可以正确地获取您的记录(用户不应该自行获取,单一责任原则)。模型或实体不应该知道关于数据库的任何事情.http://en.wikipedia.org/wiki/Single_responsibility_principle –

回答

1

你需要指定与用户检索的关系,例如:

$user = User::with('groups')->find(1); 

另外我会推荐在关系中指定关键字以提升性能。

此外,如果你需要嵌套你可以做到这一点的方法:

$user = User::with('groups.posts')->find(1); 

这将加载用户与组群,也帖子。它在laravel文档中有说明。看到这一点:eager loading

+0

这是正确的想法,但是你没有使用他的例子,这使得问题有些没有答案。请参阅下面的答案。 – gstjohn

+0

其实我正在寻找的是嵌套。 – majidarif