2017-01-10 2 views
1

Скажем, у меня есть 3 таблицыМожно ли получить данные из таблицы отношений таблицы отношений в Laravel?

Users 
- id 
- name 

Phones 
- id 
- number 
- user_id 

Carriers 
- id 
- name 
- phone_id 

В Models, я установил все необходимые hasMany и belongsTo отношения.

Я могу выбрать user с phones помощью:

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

и phone с carrier:

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

Можно ли получить коллекцию, которая имеет как phone и carrier с использованием модели App\User?

ответ

1

Вы можете использовать Nested eager loading:

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

Или,

Setup Has Many Through соотношение в модели пользователя:

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

, так что вы можете получить как носители и телефоны:

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

Великолепно, спасибо. – Harrison

Смежные вопросы