Laravel Eloquent 关系 - 3 tables,其中一个是查找 table
Laravel Eloquent Relationships - 3 tables, one of which is a lookup table
我正在努力了解一些关系。
- 我有一个名为 User 的模型(只存储用户)
- 一个名为地址的模型(存储用户可能拥有的所有地址)
- 一个名为 Countries 的模型(国家代码和描述的查找列表)
以下是简化的架构,可帮助您了解我正在努力实现的目标:
用户模型
user_id (integer)
地址Table
user_id (integer)
country_code (integer)
国家table:
country_code (integer)
country_description (text)
我在用户模型中有如下关系:
用户模型有关系:
public function addresses() {
return $this->hasMany('App\Address');
}
在地址模型中我有一个关系
public function user() {
return $this->belongsTo('App\User');
}
现在,在我的 blade 模板中,我可以通过 user->addresses 和 return 存储在地址 table 中的国家/地区代码来 @foreach,例如 'US' 或 'GB'
但是,我希望能够显示国家 table 中保存的完整国家名称。
如何以及在何处设置关系,它仍然允许我遍历地址 table,但也与国家 table 有关系,以便我可以显示国家- >country_description 列。?
任何想法
此致
詹姆斯
在您的地址模型中:
public function countries()
{
return $this->hasOne('App\Countries', 'country_code');
}
然后您可以访问 $address->countries->country_description;
我正在努力了解一些关系。
- 我有一个名为 User 的模型(只存储用户)
- 一个名为地址的模型(存储用户可能拥有的所有地址)
- 一个名为 Countries 的模型(国家代码和描述的查找列表)
以下是简化的架构,可帮助您了解我正在努力实现的目标:
用户模型
user_id (integer)
地址Table
user_id (integer)
country_code (integer)
国家table:
country_code (integer)
country_description (text)
我在用户模型中有如下关系: 用户模型有关系:
public function addresses() {
return $this->hasMany('App\Address');
}
在地址模型中我有一个关系
public function user() {
return $this->belongsTo('App\User');
}
现在,在我的 blade 模板中,我可以通过 user->addresses 和 return 存储在地址 table 中的国家/地区代码来 @foreach,例如 'US' 或 'GB'
但是,我希望能够显示国家 table 中保存的完整国家名称。
如何以及在何处设置关系,它仍然允许我遍历地址 table,但也与国家 table 有关系,以便我可以显示国家- >country_description 列。?
任何想法
此致
詹姆斯
在您的地址模型中:
public function countries()
{
return $this->hasOne('App\Countries', 'country_code');
}
然后您可以访问 $address->countries->country_description;