Как отфильтровать правильно данные в Laravel?
Хочу отфильтровать данные так:
{{base_url}}/models?source=0&search=Олег Киселев
чтобы фильтровалось сначала по source
, а потом уже по search
То есть, как и last_name
(Киселев) так и first_name
(Олег) так и вместе.
Попытки к этому есть:
Но этот запрос не работает так как надо, находит только по first_name
, а last_name
не учитывается
public function index(Request $request): AnonymousResourceCollection
{
return IndexResource::collection(
Model::query()
->whereSource(SourceEnum::LARAVEL)
->whereFilter('source', $request->get('source'))
->orwhereLikeFilter('first_name', $request->get('search'))
->orwhereLikeFilter('last_name', $request->get('search'))
->paginate(25)
);
}
orWhereLikeFilter
и whereFilter
- это обычный where с like. Написан Trait.