2016-07-22 11 views
0

私は4種類のモデルを持っています。しかし、静かに私が使用するはずの関係についてハングアップを得ていない。 モデル:County,Municipality,PostalおよびZip。 表と主キーは各モデルで正しく設定されています。ララベルの雄弁な関係複数のモデル

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

そして、私が追加したPostalモデルで:

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

、私が追加したMunicipalityモデルで

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

:私が追加したCountyモデルで

私はこれをテストしました: County::findOrFail(1)->municipality;と私うまくいく。 しかし、その特定の自治体に属する郵便はどのように手に入れられますか?

私はこれを行うことはできません:私はできると思ったCounty::findOrFail(1)->municipality->postal;。しかし、私はまだ私はそれのハングアップを持っていないことがわかります。

どうすればよいですか? ありがとうございます。

データベースの構造:あなたは郡のmunicipality分野ではない実際のオブジェクトを持って

ここ
County::findOrFail(1)->municipality; 

http://pastebin.com/ts0D5juq

答えて

0

あなたは何かを逃しました。

あなたの関数を使用する必要があります。

County::findOrFail(1)->municipality()->postal(); 
+0

私は上記の(機能)を使用しようとすると、私はエラーを取得する:未定義のメソッドを照らし\ Databaseへ 'コール\クエリー\ビルダー::郵便() ' – Kaizokupuffball

+0

これを試してみてください:'郡:: findOrFail(1) - >自治体() - > first() - > postal() - > first(); ' – Vuldo

+0

ありがとう!そのようなトリックを行うように見えます。だから私はそれぞれの関係メソッドの後に 'first()'を使わなければなりません? – Kaizokupuffball