首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用laravel 5.3创建与4个表的“多个直通”关系

如何使用laravel 5.3创建与4个表的“多个直通”关系
EN

Stack Overflow用户
提问于 2017-01-24 19:00:03
回答 2查看 759关注 0票数 2

在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;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-24 19:40:00

与4个表没有hasManyThrough关系。但是,您可以使用Nested eager loading

$country = Country::with('users.posts.comments')->first();
票数 1
EN

Stack Overflow用户

发布于 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]);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41826456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档