Обзор
Фильтрация по полю
ModelItem::filter('article_category_id')
Создает фильтр по полю article_category_id. Вы можете добавить параметр ?article_category_id=5 в адрес для фильтрации по данному полю.
Alias фильтра
ModelItem::filter('article_category_id')->as('category')
Создает фильтр по полю article_category_id, но исползьуется параметр запроса с названием category. Вы можете добавить параметр ?category=5 в адрес для фильтрации по данному полю.
Применение Scope
ModelItem::filter('withEmptyCategories')->scope('withoutCategories')
Данный код применит scope withoutCategories (scopeWithoutCategories($query) в модели) к запросу, если в параметрах запроса есть withEmptyCategories.
Переопределение параметра запроса
ModelItem::filter('title')->as('todo')->value('TODO category')
Создает фильтр по полю title с alias`ом todo. Фильтр игнорирует значение параметра запроса и всегда использует значение 'TODO category'.
Важно: параметр в запросе обязан иметь значение. Вы не можете активировать данный фильтр используя categories?todo, в то время как categories?todo=1 или categories?todo=something_else будут работать.