在laravel中,您可以与3个表格建立"has-many-through"关系。
我想知道是否有可能与4个表创建这样的关系,如果是,如何?
由于这个question,我知道如何使用sql语法来实现它,但我想先使用laravel标准解决方案。
感谢您的帮助。
4个表:国家,用户,帖子,评论
countries
id - integer
name - string
users
id - integer
country_id - integer
name - string
posts
id - integer
user_id - integer
title - string
comments
id - integer
post_id - integer
title - string
body - string
我想执行以下操作,列出一个国家/地区的所有评论。
$country = Country::first();
$country->comments;
答案 0 :(得分:1)
4个表没有hasManyThrough关系。但是,您可以使用Nested eager loading:
$country = Country::with('users.posts.comments')->first();
答案 1 :(得分:0)
我创建了一个HasManyThrough
级的无限关系:Repository on GitHub
安装后,您可以像这样使用它:
class Country extends Model {
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
public function comments() {
return $this->hasManyDeep(Comment::class, [User::class, Post::class]);
}
}