@andre7777

Как сделать запрос whereIn если массив пустой?

есть запрос
Rosid::
            whereIn('user_id',$users_id)
            ->WhereIn('status_id',$statuses)
            ->get();

если массивы не пустые - все работает.
Если один из массивов пуст - ничего не возвращает.

whereIn может быть больше двух.
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
$query = new Rosid();

if(count($users_id)){
    $query = $query->whereIn('user_id',$users_id);
}

if(count($statuses)){
    $query = $query->WhereIn('status_id',$statuses);
}

$query->get();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
rdifb0
@rdifb0
Программист, реалист
Пихай туда нули. Чтобы не были пустые.
Ответ написан
Комментировать
@Result007
P|-|P
Попробуй один из вариантов:

1) whereIn('user_id',$users_id)->whereIn('status_id', $statuses, 'or')->get();

2) whereIn('user_id',$users_id)->orWhereIn('status_id', $statuses)->get();

Это для второго whereIn, так можно для любого :)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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