sundrigast / laravel-filters
为您的 Laravel Eloquent 应用提供便捷和简单的过滤器
dev-main
2021-04-02 09:42 UTC
Requires
- php: ^7.3
- illuminate/database: ^5.8|^6.0|^7.0
- illuminate/support: ~5.8.35|^6.0
This package is auto-updated.
Last update: 2024-09-29 06:02:57 UTC
README
为您的 Laravel Eloquent 应用提供便捷和简单的过滤器
安装
使用此包所需的最低 php 版本: 7.1
使用 composer 安装此包。
composer require sundrigast/laravel-filters
用法
public function index(UserFilter $filter) { return User::filter($filter) ->paginate(); }
配置
基本配置
创建一个新的类并扩展 QueryFilter
class UserFilter extends QueryFilter { }
使用 trait 在您的模型中实现默认的过滤器方法
class User extends Model { use HasFilters; }
您现在可以编写过滤器了!
编写过滤器的方案如下:创建一个具有以下名称的方法,该名称对应于过滤器的字段。
在使用 snake_case(例如,price_from)的情况下,方法的名称必须为大驼峰式(priceFromFilter)。
示例:
class UserFilter extends Filter { protected function name(string $value) { return $this->builder->where('name', $value); } protected function nameArrayFilter(array $value) { return $this->builder->whereIn('name', $value); } protected function ageFromFilter(string $value) { return $this->builder->where('age', '>=', $value); } }
感谢
欢迎任何 pull requests 和建议!