2016-01-25 33 views
2

我正在努力讓我的頭部圍繞一些關係。Laravel雄辯的關係 - 3個表格,其中一個是查找表格

  1. 我有一個模型叫用戶(只存儲用戶)
  2. 模型稱爲地址(存儲所有地址的用戶可能有)
  3. 稱爲國家(國家代碼和說明的查找表的模型)

下面是簡化架構的幫助告訴你什麼是我想要實現:

用戶模型

user_id (integer) 

地址表

user_id (integer) 
country_code (integer) 

國家表:

country_code (integer) 
country_description (text) 

我不得不在用戶模式的關係如下: 用戶模型有關係:

public function addresses() { 
    return $this->hasMany('App\Address'); 
} 

在地址模型中,我有一個關係

public function user() { 
    return $this->belongsTo('App\User'); 
} 

現在,在我的刀模板,我能夠通過用戶>地址@foreach並返回存儲在地址表中的國家代碼,如「美國」或「GB」

然而,我希望能夠顯示在國家/地區表中顯示的完整國家/地區名稱。

我該如何建立一個關係,該關係仍然允許我遍歷地址表,但也與國家/地區表有關係,以便我可以顯示countries-> country_description列。

任何想法

問候

詹姆斯

+0

未經測試,但嘗試在您的'Addresses'模型​​中添加此項:'public function country(){return $ this-> belongsTo('App \ Countries','country_code'); }'。然後,當你遍歷用戶的地址:'$ address-> country-> country_description'。 –

回答

3

您的地址型號:

public function countries() 
{ 
    return $this->hasOne('App\Countries', 'country_code'); 
} 

然後,您可以訪問$地址 - >國家 - > country_description;

+0

謝謝,這工作 - 它是如何訪問它在blade.page我錯了,所以你的$ address-> countries-> country_description解決了這個問題。我不知道有可能像那樣鏈接。再次感謝! –

+0

查看更多這裏:https://laravel.com/docs/5.2/eloquent-relationships – omrakhur