Я пытаюсь сделать простую функцию поиска.Для этого я реализовал следующий запрос:
Profile::whereHas('accounts', function ($query) use ($id) {
$query->where('user_id', $id);
})
->where('username', 'LIKE', "%{$search}%")
->paginate(20);
-
whereHas
выбирает профили, которые имеет пользователь с $id
. - Затем с помощью
where
мы выясняем, соответствует ли поиск какому-либо имени пользователя в базе данных. - Наконец, мы разбиваем результаты на страницы.
Хорошо, пока.
Проблема возникает, когда я добавляю orWhere
вот так:
Profile::whereHas('accounts', function ($query) use ($id) {
$query->where('user_id', $id);
})
->where('username', 'LIKE', "%{$search}%")
->orWhere('fullname', 'LIKE', "%{$search}%")
->paginate(20);
Я хочу, чтобы запрос анализировал, совпадает ли поиск с имя пользователя и / или полное имя .Когда я добавляю, orWhere
работает, но whereHas
не работает, и результаты получены от всех пользователей.