Laravel Eloquent hasMany через больше чем 2 join

Я хочу получить сущность и связанные с ней данные. Есть таблицы А (таблица нужной мне сущности) и таблицы Б, В, Г, Д, где Д связана через все из этих таблиц с А.

Если использовать ORM то можно сделать так, но тогда данные будет не вложенными (объектA->Д->полеИзТаблицыД)

DB::connection()
 ->table('A')
 ->select('A.id', 'Д.очень_важное_поле')
 ->join('Б',  'Б.А_id', 'А.id')
 ->join('В',  'В.В_id', 'Б.id')
 ->join('Г',  'Г.Г_id', 'В.id')
 ->join('Д',  'Д.Д_id', 'Г.id')
 -get()

Вопрос такой, могу ли я описать через Eloquent Model эту связь так что бы потом сделать A::with('Д')->all();?


Ответы (1 шт):

Автор решения: Винсентэ Пуххини

Что насчет вложенных связей?

A::with('b.companies.persons.name')->get();

A::with(['b.companies.persons.name' => function ($query) {
    $query->select('id', '...');
}])->get();
→ Ссылка