croudtech / request-filters
Laravel 请求过滤助手。
1.0.0
2021-05-10 20:39 UTC
Requires
- illuminate/support: ^8.40
Requires (Dev)
- mockery/mockery: ^1.4
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-11 03:59:20 UTC
README
此包用于允许使用简单的请求参数快速动态地过滤基于 eloquent 的模型。非常适合后端 API!
配置
要开始在 Laravel 中使用此包,您首先需要创建一个宏,如下所示,用于定义 request()->filter()
方法:
use CroudTech\RequestFilters\RequestFilters; request()->macro('filters', function() { return RequestFilters::getFilterCollection( // Use the 'filters' query param. request()->query('filters') ); });
注意:对于 Lumen 应用程序,您需要一个辅助文件来定义 request()
方法,因为默认情况下不可用。
现在,在您的任何存储库中,您可以根据 filters
查询参数中提供的策略和参数信息开始根据策略过滤模型的结果。
public function getFood() { return request()->filters()->apply( DB::table('food') ); }
现在,我们可以提供一个包含我们希望如何过滤食物的 JSON 策略的 base_64 编码字符串。例如:
[ { "strategy": "where", "parameters": [ "calories", ">", 100 ] }, { "strategy": "whereIn", "parameters": [ "food_type", "('fried', 'baked')" ] } ]