Size: a a a

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

2021 July 02

AR

Alex Ryzhakov in Laravel для начинающих
спс)
источник

SG

Sergey Gerasimov in Laravel для начинающих
То есть 1 запрос - получение всех id (1) + запросов по количеству id-ов (N)
источник

SG

Sergey Gerasimov in Laravel для начинающих
Можно даже через exists() попробовать:
$isMain = $currentUser->restaurants()->where('main_office', true)->exists();
источник

AR

Alex Ryzhakov in Laravel для начинающих
$isMainOffice = $currentUser->restaurants()->where('main_office', true)->first();
       if ($isMainOffice) {
           return \Fractal::collection($users->get(), new StructureUserTransformer(), false);
       }
       $ids = $currentUser->restaurants()->select('restaurants.id')->get()->pluck('id')->toArray();
       // берем только тех пользователей, которые работают в этом ресторане
       $users->join('user_restaurant', function($query) use ($ids) {
           $query->on('user_restaurant.user_id','=','users.id');
           $query->whereIn('user_restaurant.restaurant_id', $ids);
       });
источник

AR

Alex Ryzhakov in Laravel для начинающих
ну я вот так
источник

SG

Sergey Gerasimov in Laravel для начинающих
Не спорю, по запросам скорей всего разницы не будет (exists по сути также как и first работает), но по пыхе у тебя лишнее приведение к модели идет.
Экономия на спичках, но просто для общего развития - попробуй всё же exists()
источник

AR

Alex Ryzhakov in Laravel для начинающих
да, я уже изменил)
источник

SG

Sergey Gerasimov in Laravel для начинающих
При объединении у тебя не будет проблем с тем, если юзер в 2х ресторанах работает?
источник

AR

Alex Ryzhakov in Laravel для начинающих
вообще не должен, но я счас перепроверю
источник

SG

Sergey Gerasimov in Laravel для начинающих
И еще один момент попробуй:

       $users->join('user_restaurant', 'user_restaurant.user_id', '=', 'users.id')
           ->whereIn('user_restaurant.restaurant_id', $currentUser->restaurants()->select('restaurants.id'));
источник

SG

Sergey Gerasimov in Laravel для начинающих
Насколько помню у тебя не будет лишнего запроса на получение ids, а он будет как подзапрос идти
источник

AR

Alex Ryzhakov in Laravel для начинающих
там в конце все равно нужно поставить после select ->get()
источник

SG

Sergey Gerasimov in Laravel для начинающих
Точно без не работает?
источник

AR

Alex Ryzhakov in Laravel для начинающих
у меня нет
источник

SG

Sergey Gerasimov in Laravel для начинающих
Кстати, get в этом случае не нужно использовать, у билдера тоже есть метод pluck, и он не будет производить лишние действия по генерации моделей и сбор их в коллекцию
источник

AR

Alex Ryzhakov in Laravel для начинающих
кстати да
источник

AR

Alex Ryzhakov in Laravel для начинающих
слушай, а ты с вагрантом работал
источник

AR

Alex Ryzhakov in Laravel для начинающих
?
источник

VY

Vladimir Yefremov in Laravel для начинающих
Привет всем!
призываю на борьбу с КОРСами :)
поставил новую Лару 8.46, пакет КОРСов встроен,
Настройки сделал по доке пакета - их там совсем не много.
И получаю в браузере КОРС.

Фронт и бэк на разных доменах.

Что еще надо настроить?
Кто подскажет?
источник

MP

Maksim (Ellrion) Pla... in Laravel для начинающих
а Костю лысого знаешь? а Локтя с заречки?
источник