在laravel中,您可以创建一个包含3个表的"has-many-through"关系。
我想知道是否有可能与4个表创建这样的关系,如果是,如何创建?
多亏了这个question,我知道如何使用SQL语法来做这件事,但我想先使用laravel standart解决方案。
谢谢你的帮助。
示例
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;
发布于 2017-01-24 19:40:00
与4个表没有hasManyThrough关系。但是,您可以使用Nested eager loading
$country = Country::with('users.posts.comments')->first();
发布于 2018-07-26 09:12:48
我创建了一个无限级别的HasManyThrough
关系:Repository on GitHub
安装完成后,您可以这样使用它:
class Country extends Model {
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
public function comments() {
return $this->hasManyDeep(Comment::class, [User::class, Post::class]);
}
}
https://stackoverflow.com/questions/41826456
复制相似问题