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
嗨,我是 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