laravel一对多关系

时间:2017-07-19 11:42:59

标签: php laravel-5 orm eloquent laravel-5.2

您好我是Laravel的新手,目前正在使用Laravel 5.2。我正在尝试创建一个应用程序,我有帖子,评论和评论有回复表,并有以下模型。

发布模型

public function comments() {
     return $this->hasMany('App\Comment');
}

评论模型

public function posts() {
   return $this->belongsTo('App\Post');
}

public function replies() {
   return $this->hasMany('App\Reply');
}

回复模式

public function comments() {
   return $this->belongsTo('App\Comment');
}

我想要实现的目标:

发表评论并回复帖子

帖子 - >很多评论 - >很多回复

我可以通过以下

获得评论
$posts = Post::with('comments')->get();

但不知道如何通过回复发表评论

1 个答案:

答案 0 :(得分:0)

你应该能够做到

Post::with('comments.replies')->get()

此外,您应始终能够通过以下评论获得回复:->replies。请注意,如果您没有急切地加载所有回复,您可能会收到数百个数据库查询,每个注释都会发送一个查询来检索回复。如果您检索上述查询之类的所有评论,您将立即检索所有回复,而Laravel会将它们映射到相应的评论。

还有一些很好的例子供您阅读laravel文档:Eloquent: Relationships - Eager loading