【发布时间】:2016-05-02 05:55:03
【问题描述】:
我很难理解一些关系。
- 我有一个名为 User 的模型(只存储用户)
- 名为 Addresses 的模型(存储用户可能拥有的所有地址)
- 名为 Country 的模型(国家代码和描述的查找列表)
以下是简化的架构,可帮助您展示我想要实现的目标:
用户模型
user_id (integer)
地址表
user_id (integer)
country_code (integer)
国家表:
country_code (integer)
country_description (text)
我在 User 模型中有如下关系: 用户模型有关系:
public function addresses() {
return $this->hasMany('App\Address');
}
在地址模型中我有一个关系
public function user() {
return $this->belongsTo('App\User');
}
现在,在我的刀片模板中,我可以通过 user->addresses @foreach 并返回存储在地址表中的国家代码,例如“US”或“GB”
但是,我希望能够显示国家/地区的完整名称,该名称保存在国家/地区表中。
我如何以及在哪里设置一个关系,它仍然允许我遍历地址表,但也与国家表有关系,以便我可以显示国家/地区描述列。?
任何想法
问候
詹姆斯
【问题讨论】:
-
未测试,但尝试将其添加到您的
Addresses模型中:public function country() { return $this->belongsTo('App\Countries', 'country_code'); }。然后,当您遍历用户的地址时:$address->country->country_description。
标签: laravel eloquent relationships