Size: a a a

Laravel для начинающих

2020 February 26

M

Michael in Laravel для начинающих
да, чтобы не блокировать поток выполнения джаваскрипта надо возвращать из апи промис, и в компоненте на его ресолв вешать необходимый функционал отрисовки и т.п.
источник

мн

мистер никитос in Laravel для начинающих
Andrey Helldar
При загрузке bind вызывается модель Want

На фронте выводится список комментов с авторами.
В контроллере он сделал жадную загрузку:
$want->load('comments.user')

При отрисовке коммента модель user получает ссылку на него для отрисовки. Из-за этого второй раз загружается модель Want, получая в итоге два одинаковых запроса.

Чтобы этого избежать, чувак предлагает лайвхак: в контроллере прописать
$want->comments->each->setRelation('want', $want)

Таким образом, при обращении из юзера к релейшену want не будет производиться запрос в базу.
load тоже запрос генерит, я понял о чем речь, ты не так просто изъяснил. И там запросов по идее куча будет, если на фронте мы фетчим еще и юзера из этих коментов снова
источник

мн

мистер никитос in Laravel для начинающих
*еще и want
источник

ЕК

Егор Карась in Laravel для начинающих
Alexander Pavlenko 🌚
async await неробит
а ето воще забудь
источник

AH

Andrey Helldar in Laravel для начинающих
мистер никитос
load тоже запрос генерит, я понял о чем речь, ты не так просто изъяснил. И там запросов по идее куча будет, если на фронте мы фетчим еще и юзера из этих коментов снова
load - да, НО этого недостаточно - у него обращение идет $want->comments->want
Где первый и последний - это два одинаковых запроса в базу.
источник

ИС

Илья Сакович in Laravel для начинающих
Alexander Pavlenko 🌚
оно промис возвращает
await yourFunction() не работает?
источник

мн

мистер никитос in Laravel для начинающих
Andrey Helldar
load - да, НО этого недостаточно - у него обращение идет $want->comments->want
Где первый и последний - это два одинаковых запроса в базу.
Угу, я об этом
источник

ИС

Илья Сакович in Laravel для начинающих
Alexander Pavlenko 🌚
async await неробит
что значит не работает?
источник

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
Michael
да, чтобы не блокировать поток выполнения джаваскрипта надо возвращать из апи промис, и в компоненте на его ресолв вешать необходимый функционал отрисовки и т.п.
я какраз и хочу это вынести из компонента
мне этот метод нужно дернуть во многих местах
источник

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
как-то лень везде промис резолвить
источник

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
🌚
источник

M

Michael in Laravel для начинающих
Alexander Pavlenko 🌚
как-то лень везде промис резолвить
а придётся
источник

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
😒
источник

ИС

Илья Сакович in Laravel для начинающих
Alexander Pavlenko 🌚
как-то лень везде промис резолвить
так а что не так с await?
источник

AH

Andrey Helldar in Laravel для начинающих
мистер никитос
Угу, я об этом
И, чтобы убрать второй запрос для want, чувак предложил хак:
$want->comments->each->setRelation('want', $want)
источник

ЕК

Егор Карась in Laravel для начинающих
Alexander Pavlenko 🌚
как-то лень везде промис резолвить
но ето же жаваскрипт
источник

ЕК

Егор Карась in Laravel для начинающих
Илья Сакович
так а что не так с await?
Он не нужен
источник

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
Илья Сакович
так а что не так с await?
продолжает работать асинхронно🤷‍♂️
источник

ИС

Илья Сакович in Laravel для начинающих
Alexander Pavlenko 🌚
продолжает работать асинхронно🤷‍♂️
покажи код пж
источник

мн

мистер никитос in Laravel для начинающих
Andrey Helldar
И, чтобы убрать второй запрос для want, чувак предложил хак:
$want->comments->each->setRelation('want', $want)
Да я понял, я только про кол-во запросов в том куске кода, что ты прописал спросил)
источник