rel1. Для тех из них кто rel1->where('prop1', true) нужно грузить вложенные отношения with(['rel1.nested.deep_nested']).
Сейчас получается только ч помощью loadMissing после первого запроса где только жадная загрузка rel1.
Есть возможность грузануть одним билдером или вариант загрузки loadMissing в два этапа единственно возможный?
with или load([ 'rel1' => fn($query) => $query->where('prop1', true), 'rel1.nested.deep_nested', ]) вроде так
with или load([ 'rel1' => fn($query) => $query->where('prop1', true)->with('nested.deep_nested'), ])
если правильно помню то в результате останутся только rel1 где prop1 === true. А нужны все rel1 с любым значением. а ленивая загрузка вложеных отношений только для случая где prop1 === true
т.е. тебе нужно nested.deep_nested только для rel1 где prop1 === true?
т.е. если у тебя $result это коллекция, то $result->load('rel1'); $result->where('rel1.prop1', true)->load('nested.deep_nested'); может так? т.е. получили результат, к нему подтянули rel1, выбрали только те, где rel1.prop1 === true и к ним подгрузили нужные связи, главное теперь там где будет обращение к связям не вмазаться в незагруженные связи
А whereHas не вариант получше ?
У меня также вначале промелькнула такая мысль, но если ещё раз прочитать задачу, то нет
Обсуждают сегодня