abelaguiar / filter-laravel
在 Laravel 中制作过滤器
v0.0.21
2023-06-15 19:14 UTC
Requires
- php: ^8.0
- illuminate/console: @dev
- illuminate/database: @dev
- illuminate/http: @dev
- illuminate/support: @dev
Requires (Dev)
- phpunit/phpunit: ~4.0
README
abelaguiar/filter-laravel
包提供了在 Laravel 中实现简单过滤器的易用函数。
安装包
composer require abelaguiar/filter-laravel
使用 php artisan
查看与过滤器相关联的命令列表。
创建过滤器
php artisan filter:model <Model>
创建字段
php artisan filter:field <Name>
创建过滤器时,在类内部有一个数组,您可以在其中放置您希望在模型中用作过滤器的字段。
示例过滤器类与字段实现
use App\Filters\Fields\TitleField; use AbelAguiar\Filter\AbstractFilter; class PostClass extends AbstractFilter { protected $filters = [ 'title' => TitleField::class ]; }
示例字段类
class TitleField { public function filter($builder, $value) { return $builder->where('title', $value); } }
创建过滤器后,在您想要连接过滤器的模型中,您将放置
use AbelAguiar\Filter\RequestFilter; class Post { use RequestFilter; ...
如果您想要设置不同的过滤器路径,请在模型中使用以下变量
protected static $filter = 'App\Filters\PostFilter'; ...
最后,当在应用程序的任何位置调用模型时,只需通过传递请求调用方法 filter
,从而返回如以下示例所示的所有数据
Post::filter($request)->get()