Laravel Eloquent, where с несколькими вариациями значения столбца?

Использую Laravel Eloquent отдельно от Laravel. Как я могу за один запрос получить данные с несколькими значениями определенного столбца?
Пример:
Есть таблица комментариев пользователей и мне необходимо получить только комментарии пользователя со статусом "active" от пользователей с ID 2 и 6, подразумеваю, что запрос должен быть вида:
->where('status',  '=' , 'active')
    ->orWhere('uid',  '=', '2')
    ->orWhere('uid',  '=', '6')
    ->get()

Но он не срабатывает, я либо получаю все записи со статусом active, либо не получаю никакие записи.
  • Вопрос задан
  • 104 просмотра
Решения вопроса 2
iMedved2009
@iMedved2009
Не люблю людей
потому что вы получаете запрос вида where status = 'active' or uid=2 or uid=6; и получаете все варианты.

1. Использовать whereIn
->where('status',  '=' , 'active')
->whereIn('uid',  [2,6])
->get();


2. Использовать обертку что бы получить запрос вида where status = 'active' and (uid=2 or uid=6)
->where('status',  '=' , 'active')
->where(function($builder){
  $builder->where('uid',  '=', '2')
      ->orWhere('uid',  '=', '6');
})
->get();
Ответ написан
Комментировать
Acrilo
@Acrilo Автор вопроса
Решение нашлось с помощью оператора 'whereIn('uid', [2, 6])' вместо 'orWhere()'

https://laravel.com/docs/8.x/queries#additional-wh...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы