@NikSIk31

Laravel запрос с with и where?

А как можно было бы получить данные при: есть order и он имеет много offers, надо получить все order со статусом search и если он имеет offers с user_id == Auth::id() . Это вроде как нельзя просто так сделать через where и with
$orders = Order::where('status', 'search')
            ->with([
                'offers' => function ($q) {
                    $q->where('user_id', Auth()->id())->first();
                }
            ])->get();

получается order нужный, а offers либо пуст, либо в нем есть один offer (нужный) . И выходит, что еще раз один where надо сделать уже отдельно с проверной на не null в offers для каждого order??
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
vfreelancer
@vfreelancer
php
гуглите whereHas
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@GssGenic
Программист со стажем более 20 лет.
Я бы использовал ::where(....)->joinLeft(....)->select('orders.*' , 'offers.* as offer')->get();
select нужен чтобы id поле offers не заменило поле id таблицы orders
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект