apichef / laravel-request-query-helper
轻松交互 JSON-API 查询参数。
v2.2.1
2021-03-28 18:57 UTC
Requires
- php: ~7.4 || ^8.0
- illuminate/http: ^6.0|^7.0|^8.0
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^5.0|^6.0
- phpunit/phpunit: ^8.0|^9.0
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-08-29 02:40:15 UTC
README
轻松交互 JSON-API 查询参数。
安装
通过 Composer
$ composer require apichef/laravel-request-query-helper
您可以使用以下命令发布配置文件
$ php artisan vendor:publish --provider="ApiChef\RequestQueryHelper\RequestQueryHelperServiceProvider"
用法
配置
默认配置遵循 {json:api} 规范。
return [ /* Configuration for inclusion of related resources */ 'include' => [ 'name' => 'include', ], /* Configuration for filtering resource collections */ 'filter' => [ 'name' => 'filter', ], /* Configuration for sorting resource collections */ 'sort' => [ 'name' => 'sort', ], /* Configuration for sparse field-sets */ 'fields' => [ 'name' => 'fields', ], /* Configuration for pagination */ 'pagination' => [ 'name' => 'page', 'number' => 'number', 'size' => 'size', ], ];
包含和过滤
此包向查询对象添加了 filters
和 includes
方法。两种方法都返回 QueryParamBag
,可以解析基于数组和字符串的请求查询字符串。
例如
GET '/posts?include=comments:limit(5):sort(created_at|desc),author'
或者
GET '/posts?include[comments][limit]=5&include[comments][sort]=created_at|desc&include[author]'
以下示例基于上述请求。
use Illuminate\Http\Request; class ExampleController extends Controller { public function show(Request $request) { $params = $request->includes(); // has $params->has('comments'); // true $params->has('comments.limit'); // true $params->has('comments.sort'); // true $params->has('comments.foo'); // false $params->has('author'); // true // get $params->get('comments.limit'); // [5] $params->get('comments.sort'); // ['created_at', 'desc'] // isEmpty $params->isEmpty('comments'); // false $params->isEmpty('author'); // true } } ## Sorts // todo ## Fields // todo ## Pagination // todo
变更日志
请参阅 CHANGELOG 了解最近的变化。
测试
$ composer test
贡献
请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT 了解详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 milroy@outlook.com 联系,而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。