Я хотел бы знать, есть ли разветвления оптимальных объединений с точки зрения объединения через представление или при получении самой модели.
Так будет и этот звонок:
$deposit = Class::where('request_type', 1)->where('id', $id)->with(['customer', 'currencyTable', 'bankList', 'customerBank']);
Быть эквивалентным полностью с точки зрения производительности и других факторов, поскольку этот оператор возврата:
return view('whatever.howEver.show', compact('oneVar', 'twoVar', 'etc'))->with(['customer', 'currencyTable', 'bankList', 'customerBank']);
И если он эквивалентен по производительности и так далее, где вы разместите свой with()?
@ThijsSteel One использует with как часть построителя запросов, а тот - через представление, но оба y приносят одинаковые результаты, экземпляр отношения модели, отсюда и мой вопрос. Пожалуйста, дайте более подробный ответ и будьте внимательны, спасибо.
они оба работают?






Первый пример
$deposit = Class::where('request_type', 1)
->where('id', $id)->with(['customer', 'currencyTable', 'bankList', 'customerBank']);
Вы запрашиваете модель Class и через with() просите предварительно загрузить отношения customer, currencyTable, ..., определенные в Class.
Второй пример
return view('whatever.howEver.show', compact('oneVar', 'twoVar', 'etc'))
->with(['customer', 'currencyTable', 'bankList', 'customerBank']);
Это возвращает данное представление и дает представлению доступ к перечисленным переменным, аналогично тому, как вы используете compact. Это совсем не то же самое, и, насколько мне известно, это не ставит под сомнение отношения.
Почему они оба работают
В Laravel есть так называемая ленивая загрузка. Даже если вы не используете with(), как в первом примере, вы все равно можете использовать отношения, но разница в том, что отношение запрашивается только при доступе к нему, то есть выполняется несколько запросов (обычно медленнее).
Итак, вы говорите, что "второй пример", возвращающий красноречивое представление with(), замедляет загрузку представления? Пожалуйста, будьте точны и объясните, как, поскольку это моя главная забота, спасибо.
я говорю, что второй пример делает нечто совершенно иное. Вы должны попробовать это без with(), он будет работать
with() из первого примера делает это быстрее
Разве это не называется нетерпеливой загрузкой (до чего угодно)? Т.е. не ленивая загрузка (постить что угодно)
ленивая загрузка - причина, по которой он работает даже без активной загрузки
Спасибо за ответ, подожду других ответов на всякий случай, подождите неделю, если вас устраивает.
разве эти два примера
with()не совсем разные?