通过Laravel中的一个查询获得雄辩的模型及其所有关系

时间:2014-04-05 08:04:49

标签: php laravel eloquent

问题

有没有办法只使用一个查询获得一个雄辩的模型和所有的关系?

示例场景:

您同时拥有PostComment雄辩型号 您可以分别使用hasMany('Comment')belongsTo('Post')在模型类中添加关系。

现在这就是我一直在检索帖子及其评论的内容:

$post = Post::find($id);
$post->comments;
return $post;

这将返回一个漂亮的json对象。问题是,这样,我将使用两个查询。那不太好。

解决方法

有两种选择:

  • 使用join语句进行我想要的查询。但Eloquent更优雅。
  • 利用缓存类,以便将来减少查询次数(我将在以后再做)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在雄辩中,你可以这样做

$post = Post::with('comments')->find($id);
return $post;

修改 这不会在mysql中使用join运行查询,但它只是在Eloquent中的单个查询。