Как вытянуть все данные по связям из таблиц в laravel?
Подскажите, как можно вытянуть все данные из группы связанных таблиц через модель user в ларавел, все по типу многие к одному.
Таблицы следующие:
Country->city->office->user
Подскажите как построить запрос, чтобы через модель User можно получить все данные из всех таблиц и обратиться к этим данным в view?
Ответы (1 шт):
Автор решения: mydls1
→ Ссылка
Country::with([
'cities' => function ($query) {
$query->select('id', 'name', 'country_id'); // выберите только нужные столбцы для City
},
'cities.offices' => function ($query) {
$query->select('id', 'name', 'city_id'); // только необходимые поля для Office
},
'cities.offices.users' => function ($query) {
$query->select('id', 'name', 'office_id'); // только нужные поля для User
}
])->select('id', 'name') // выберите только нужные поля для Country
->get();
Это более простой запрос, но меньше контроля, может загрузить не нужные поля, и повысит нагрузку. ( всегда контролируйте свои запросы )
Country::with('cities.offices.users')->get();