2017-01-10 4 views
0

I持って次のモデル:複数のレベルで負荷関係を熱望する方法は?

ProductA - ProductB - 機能 - オプション

私は、次のような関係があります。

ProductA belongsToMany ProductB ProductB belongsToMany機能 機能belongsToManyオプション

I ProductAの詳細を表示したい(コントローラが管理するProductA idのポスト)。私はすべての関係をロードすることを熱望したい。 変数を渡すすべての詳細をビューに表示します。

Eloquent命令を1つ使用することは可能ですか?

このようなもの(私はそれが動作していないことを知っています):それは正しい方法ですか?

$prodcutDetails = ProductA->with('product_b')->with('features')->with('option')->find($id); 

おかげ

答えて

1

あなたは関係の熱心な負荷の関係にドット表記を使用することができます。同様に:

$prodcutDetails = ProductA::with(['product_b', 'product_b.features', 'product_b.features.option'])->find($id); 
+0

オプションはproduct_bとは直接関係しませんが、機能 – koalaok

0

@Jerodevは上記の回答が良いですが、複数の関係は冗長です。 $prodcutDetails = ProductA::with('product_b.features.option')->find($id);を使用するとより効率的になり、まだproduct_bproduct_b.featuresにアクセスできます。

関連する問題