2017-01-10 22 views
1

は、私は3つのテーブルLaravelの関係テーブルの関係テーブルからデータを取得できますか?

Users 
- id 
- name 

Phones 
- id 
- number 
- user_id 

Carriers 
- id 
- name 
- phone_id 

Modelsでは、私は必要なすべてのhasManybelongsTo関係を設定するとしましょう。

私が使用してphonesuserを選択することができます。

App\User::with('phones')->where('id', '=', 1)->first();

phonecarrierで:

App\Phone::with('carrier')->where('id', '=', 1)->first();

両方phonecarrier使用してモデルを持っているコレクションを取得することが可能ですApp\User?あなたがキャリアと携帯電話の両方を得ることができるように

public function carriers() 
    { 
     return $this->hasManyThrough('App\Phone', 'App\Carrier'); 
    } 

:ユーザーモデルのセットアップHas Many Through関係

$users = App\User::with('phones.carriers')->get(); 

あるいは、

答えて

1

あなたはNested eager loadingを使用することができます

$user->carriers; 
$user->phones; 
+0

素晴らしい、ありがとう。 – Harrison

関連する問題