laravel 一对多对多关系

laravel one to many to many relationship

嗨,我是 Laravel 的新手,目前正在使用 Laravel 5.2。我正在尝试创建一个应用程序,其中我有 posts 并且评论和评论有回复 table 并具有以下模型。

Post 型号

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');
}

我想达到的目标:

Post 评论并回复 Post

post -> 很多评论 -> 很多回复

我可以通过关注获得评论

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

但是不知道怎么回复评论

你应该可以做到

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

此外,您应该始终能够从这样的评论中获得回复:->replies。请注意,如果您没有预先加载所有回复,您可能会收到数百个对数据库的查询,每个评论都会发送一个查询以检索回复。如果像上面的查询一样检索所有评论,您将立即检索所有回复,Laravel 会将它们映射到适当的评论。

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