shetabit / transform-request
转换laravel请求
v1.0
2019-08-27 09:21 UTC
Requires
- php: >=7.2
- illuminate/support: ~5.6
- shetabit/transformer: ^2.0
Requires (Dev)
- orchestra/testbench: ^3.8
- phpunit/phpunit: >=8.3
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-09-21 20:59:11 UTC
README
转换laravel请求
您可以使用转换器来 规范化 或 更改请求数据结构。
让我们在
transformers
中规范化我们的数据,让controllers
更加 简洁 和 小巧。
目录列表
安装
通过Composer
$ composer require shetabit/transform-request
如何使用
创建新的数据转换器
我们使用转换器来转换请求数据。
您可以在控制台中运行以下命令来创建一个名为 TestTransformer
的新数据转换器。
$ composer php artisan make:transformer TestTransformer
所有转换器都将创建在 App\Http\Transformers
路径下。
转换器示例
在所有转换器中,transform
方法将您的数据转换成理想的数据格式。例如,我们可以在其中写入以下代码
namespace App\Http\Transformers; use Shetabit\Transformer\Contracts\TransformerInterface; class TestTransformer implements TransformerInterface { /** * transform given data * * @param array $data * @return array */ public function transform(array $data) : array { /* input data : [ 'n' => 'mahdi', 'f' => 'khanzadi' ] transformed data: [ 'name' => 'mahdi', 'family' => 'khanzadi', 'username' => 'mahdikhanzadi' ] */ return [ 'name' => $data['n'] ?? null, 'family' => $data['f'] ?? null, 'username' => ($data['n'] ?? null).($data['f'] ?? null) ]; } }
转换请求
我们可以使用转换器将请求转换为以下形式
namespace App\Http\Controllers; use App\Http\Transformers\TestTransformer; use Illuminate\Http\Request; class TestController extends Controller { public function __invoke(Request $request) { $data = $request->transform()->get(new TestTransformer()); print_r($data) } }
变更日志
请参阅 变更日志 以获取有关最近更改的更多信息。
贡献
安全
如果您发现任何安全相关的问题,请通过电子邮件 khanzadimahdi@gmail.com 联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅 许可证文件。