![](/img/trans.png)
[英]How can I query on 3 tables using has-many-through relationship in Laravel 5.4
[英]How to create a "has many through" relationship with 4 tables with laravel 5.3
在 Laravel 中,您可以使用 3 个表创建“有很多通过”的关系。
我想知道是否可以用 4 个表创建这样的关系,如果是,如何?
由于这个问题,我知道如何使用 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;
与 4 个表没有 hasManyThrough 关系。 但是,您可以使用嵌套急切加载:
$country = Country::with('users.posts.comments')->first();
我创建了一个具有无限级别的HasManyThrough
关系: GitHub 上的存储库
安装后,您可以像这样使用它:
class Country extends Model {
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
public function comments() {
return $this->hasManyDeep(Comment::class, [User::class, Post::class]);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.