abelaguiar/filter-laravel

在 Laravel 中制作过滤器

v0.0.21 2023-06-15 19:14 UTC

README

PHP from Packagist Packagist Packagist Build Status

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()