繁体   English   中英

在Laravel中,如何从3个表的一个查询中获取数据

[英]In laravel how can i get data in one query from 3 tables

我有3张桌子

first table : language
2nd table : user_language 
3rd table : user 

在user_language表中,我存储了所有用户的language_id,它可以是多个。

user_language Table 

user  language_id 
9         5  
13       10
17        8
17        3

language_table 
id     language
5      english
10     hindi
8      Tamil
3      Gujrati

user table 
id   name
9    amit
3    john
17    aman

我的问题是在laravel中,如何在一个查询中获得所有用户语言。 查询应该在laravel中。

在这种情况下,您要做的就是编写如下内容:

用户模型片段:

public function languages() {
    return $this->belongsToMany(Language::class);
}

语言模型片段

public function users() {
    return $this->belongsToMany(User::class);
}

您需要在顶部导入课程

您可以获取用户语言,例如

对于特定用户User::with('languages')->where('id', $userId)->first();

对于所有用户

User::with('languages')->get();

使用多对多关系。

在用户模型中:

public function languages()
    {
        return $this->belongsToMany('Language_Model', 'user_language', 'user', 'language_id');
    }

您可以使用以下语言访问该语言:

$user->languages

一定要看看laravel 多对多文档,因为它具有有关多对多关系的清晰信息。

另外,您可以在这里查看多对多关系的基本用法。

使用枢轴关系。

枢纽关系对于使用外键的两个表连接非常有用。

请参考下面的链接。

枢纽关系

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM