Eloquent ограничение при нетерпеливой загрузке

Есть модель Turbochargers

и сам запрос:

Turbocharger::where('status', 1)
            ->with(['motors', 'vehicles', 'images', 'turbineCategories'])
            ->select(['id', 'name', 'title', 'slug', 'preview'])
            ->get()
            ->toJson();

я получаю обьект в котром лежать turbochargers и данные по связи с ним ('motors', 'vehicles', 'images', 'turbineCategories') с помощью ->select(['id', 'name', 'title', 'slug', 'preview']) я ограничиваю вывод из таблтцы turbochargers только эти поля. Так же мне надо огнаничить вывод полей из связи turbineCategories

пробовал: ('motors', 'vehicles', 'images', 'turbineCategories:id') но мне так же надо полуать и 'turbineCategories:name'

и так:

$turbochargers = Turbocharger::where('status', 1)
            ->with(['motors', 'vehicles', 'images',])
            ->with(['turbineCategories' => function($query){
                $query->select('id','name');
            }])
            ->select(['id', 'name', 'title', 'slug', 'preview'])
            ->get()
            ->toJson();

Как плучить обьект turbachargers с ограничением в связанной таблице по нескольким стольбцам?


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

Автор решения: Vladislav Savchenko
Turbocharger::where('status', 1)
            ->with('motors', 'vehicles', 'images','turbineCategories:name,slug,turbine_category_id')
            ->select(['id', 'name', 'title', 'slug', 'preview'])
            ->get()
            ->toJson();

Вот так получилось выбрать все что мне нужно Если есть варианты оптимизации буду рад если подскажите!

→ Ссылка