shetabit/transform-request

转换laravel请求

v1.0 2019-08-27 09:21 UTC

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)。有关更多信息,请参阅 许可证文件