laravel-filter / filter
该包用于对EXP进行数据过滤,您有一个带有多选项的搜索栏/页面,此包可以帮助您轻松快速地进行过滤。此包使用管道技术,并逐部分检查请求。
Requires
- php: >=7.4
- laravel/framework: >=6.0
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)。有关更多信息,请参阅许可证文件。