2015-09-01 136 views
0

工作我已經三個表叫:」Laravel有關係

用戶 Rittenregistratie karakterrit

用戶具有一個或多個Rittenregistratie和Rittenregistratie具有 一個Karakterrit

這是我的型號:

用戶型號:

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

Rittenregistratie型號:

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

    public function karakterrit() 
    { 
     return $this->hasOne('App\karakterrit'); 
    } 

Karakterrit型號:

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

當我在我的控制器的rittenregistratie搜索特定的ID我不喜歡這樣寫道:

$rittenregistratie = Rittenregistratie::whereId($id)->firstorFail(); 

當我想在我看來顯示那個rittenregistratie的karakterrit時,我這樣做:

$rittenregistratie->karakterrit_id 

但是,如何確保我沒有看到一個數字,但是該行的值?

編輯

也許我已經解釋了它有點複雜。

通常我會用Joins來實現這一點。 我有三個表用戶,Rittenregistratie,Karakterrit

Rittenregistratie看起來像這樣

Id (primary key) 
kmstand (int) 
van (text) 
naar(text) 
karakterrit_id (foreign key) 

Karakterrit看起來像這樣

Id (primary key) 
rit (text) 

Rittenregistratie.karakterrit_id是karakterrit_id的外鍵。現在是我的問題如何顯示karakterrit.rit?

+0

作爲一種語言是英語,什麼是「Rittenregistratie」和「Karakterrit」? –

+0

是的,對不起,這是荷蘭人。 Rittenregistratie是你駕駛汽車的日期,距離,距離。例如,如果你是私人或商業用途,卡拉特里特就是如此。 – Jamie

+0

Gotcha。謝謝:) –

回答

0

要獲得模型而不是價值,請像這樣稱呼它。雄辯會通過一種神奇的方法爲你獲得關係。

$rittenregistratie->karakterrit 
//or 
$rittenregistratie->karakterrit()->first(); 

編輯: 因爲它返回的模式,得到其值,你根本就$rittenregistratie->karakterrit->rit

+0

感謝您的回覆。但是我想我已經解釋了一些複雜的請看我的編輯。 – Jamie

+0

@jamie增加了一個例子。 – Kaspars

+0

謝謝,但然後我收到錯誤:SQLSTATE [42S22]:未找到列:1054未知列'where子句'中的'karakterrit.rittenregistratie_id'(SQL:select * from'karakterrit'其中'karakterrit'.'rittenregistratie_id' = 3和'karakterrit'.'rittenregistratie_id'不爲null限制1)(查看:D:\ wamp \ www \ resources \ views \ ritten \ rit.blade.php) – Jamie