matthewerskine / request-filters
Laravel 请求过滤助手。
1.0.0
2018-05-01 10:36 UTC
Requires
- illuminate/support: ^5.6
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^7.1
This package is not auto-updated.
Last update: 2024-09-29 05:41:56 UTC
README
此包用于允许使用简单的请求参数快速动态地对基于eloquent的模型进行过滤。非常适合后端API!
配置
要开始在Laravel中使用此包,您首先需要创建一个宏,用于定义request()->filter()
方法,如下所示
use MatthewErskine\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')" ] } ]