该包用于对EXP进行数据过滤,您有一个带有多选项的搜索栏/页面,此包可以帮助您轻松快速地进行过滤。此包使用管道技术,并逐部分检查请求。

dev-master 2022-02-12 16:23 UTC

This package is not auto-updated.

Last update: 2024-09-23 00:21:22 UTC


README

《blackWhaleDev/filter》包提供了一种轻松编写全局查询过滤的方法。

以下是使用它的示例

pipe(New User(),
    [
        NameFilter::class,
    ])->paginate(10);

您可以使用Artisan命令创建自己的过滤器类

php artisan make:filter ClassName ColumnName 

此命令有一些选项

--type --second --relation=

支持我们

您可以通过使用此包并帮助我改进它来支持我

文档

对于EXP:您有一个搜索页面,并想为该页面设置一些过滤器,这些过滤器应应用于User类。

首先使用artisan调用创建2个类(Name和LastNameLike)

名称

php artisan make:filter Name FirstName

此命令将在“App\QueryFilters”文件夹中生成“Name.php”文件

注意:我们想要进行过滤的列是“first_name”,但我们应该将其写成驼峰式,并在HTML表单输入名称中与列名称“first_name”相同

现在第二个类

php artisan make:filter LastName LastName --type=like

此命令将在“App\QueryFilters”文件夹中生成“likeLastName.php”文件

现在在您的函数中调用pipe()辅助函数

pipe(New User(), [
    Name::class,
    likeLastName::class, // --type = like
])->paginate(10);

就是这样;)!!

当请求进入辅助函数时,它将转到Name类,并检查请求中是否有“name”,如果有,则进行检查;如果没有,则将跳转到下一个请求(下一个类)而无需检查

在使用该包时遇到困难?发现了错误?您有关于改进过滤系统的一般问题或建议吗?请随时在GitHub上创建一个问题,我会尽快解决。

如果您发现了一个安全问题,请通过alizade488@gmail.com发送电子邮件,而不是使用问题跟踪器。

Artisan调用类型

单个:

php artisan make:filter Name FirstName

默认类型

类似:

php artisan make:filter Name FirstName --type=like

它的“类似”查询

在...之间:

php artisan make:filter Name StartDate --type=between --second=EndDate

在此类型中,您应传递“--second”选项,这将检查数据是否在两个时间之间或其他...

关系:

php artisan make:filter Name StartDate --type=relation --relation=RelationName

在此类型中,您应传递“--relation”选项,这将检查具有该关系的whereHas数据

安装

您可以通过Composer安装此包

composer require laravel-filter/filter

该包将自动注册自己。

注意:请保持驼峰式风格

安全

如果您发现了任何与安全相关的问题,请通过alizade488@gmail.com发送电子邮件,而不是使用问题跟踪器。

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件