grixu / query-builder-filters
laravel-query-builder(由Spatie开发)的过滤器集合
1.2.2
2021-11-18 11:31 UTC
Requires
- php: ^7.3 || ^8.0
- illuminate/database: ^8.0
- spatie/laravel-query-builder: ^3.3.4 || ^4.0.0
Requires (Dev)
- brainmaestro/composer-git-hooks: ^2.8
- friendsofphp/php-cs-fixer: ^3.1
- nunomaduro/larastan: ^0.7.12 || ^1.0.0
- nunomaduro/phpinsights: ^2.0
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.3
- spatie/x-ray: ^1.1
This package is auto-updated.
Last update: 2024-09-10 03:57:31 UTC
README
laravel-query-builder(由Spatie开发)的过滤器集合
安装
您可以通过composer安装此包
composer require grixu/query-builder-filters
用法
这是一个用于与Spatie制作的优秀包Spatie: laravel-query-builder一起使用的过滤器集合。以下是如何使用此包中10个过滤器的示例。
DateAfterField, DateBeforeFilter, DateBetweenFilter
use Grixu\QueryBuilderFilters\DateAfterFilter; use Grixu\QueryBuilderFilters\DateBeforeFilter; use Grixu\QueryBuilderFilters\DateBetweenFilter; // In your Controller or HttpQueryBuilder class for the following request: // GET /users?filter[date_after]=2020-12-01 // GET /users?filter[date_before]=2020-12-01 // GET /users?filter[date_between]=2020-11-01,2020-12-01 $users = QueryBuilder::for(User::class) ->allowedFilters([ AllowedFilter::custom('date_after', new DateAfterFilter(), 'date_field_name'), AllowedFilter::custom('date_before', new DateBeforeFilter(), 'date_field_name'), AllowedFilter::custom('date_between', new DateBetweenFilter(), 'date_field_name'), ]) ->get();
GreaterThanFilter, GreaterOrEqualThanFilter, LowerThanFilter, LowerOrEqualThanFilter
use Grixu\QueryBuilderFilters\GreaterThanFilter; use Grixu\QueryBuilderFilters\GreaterOrEqualThanFilter; use Grixu\QueryBuilderFilters\LowerThanFilter; use Grixu\QueryBuilderFilters\LowerOrEqualThanFilter; // GET /users?filter[field_gt]=100 // GET /users?filter[field_gte]=100 // GET /users?filter[field_lt]=100 // GET /users?filter[field_lte]=100 $users = QueryBuilder::for(User::class) ->allowedFilters([ AllowedFilter::custom('field_gt', new GreaterThanFilter(), 'field'), AllowedFilter::custom('field_gte', new GreaterOrEqualThanFilter(), 'field'), AllowedFilter::custom('field_lt', new LowerThanFilter(), 'field'), AllowedFilter::custom('field_lte', new LowerOrEqualThanFilter(), 'field'), ]) ->get();
StartsWithFilter
use Grixu\QueryBuilderFilters\StartsWithFilter; // GET /users?filter[some]=93 $users = QueryBuilder::for(User::class) ->allowedFilters([ AllowedFilter::custom('some', new StartsWithFilter(), 'some'), ]) ->get();
IsNullFilter, NotNullFilter
use Grixu\QueryBuilderFilters\IsNullFilter; use Grixu\QueryBuilderFilters\NotNullFilter; // GET /users?filter[not_null]=some_field // GET /users?filter[is_null]=some_field $users = QueryBuilder::for(User::class) ->allowedFilters([ AllowedFilter::custom('is_null', new IsNullFilter()), AllowedFilter::custom('not_null', new NotNullFilter()), ]) ->get();
测试
composer test
变更日志
请参阅CHANGELOG以获取更多最近更改的信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件mateusz.gostanski@gmail.com联系,而不是使用问题跟踪器。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。