nwidart / laravel-normalizer
Laravel 数据库存储前数据格式化包。
0.2
2016-07-27 07:11 UTC
Requires
- php: ^7.0
- illuminate/database: 5.1.*|5.2.*
Requires (Dev)
- phpunit/phpunit: 5.*
- scrutinizer/ocular: ~1.1
This package is auto-updated.
Last update: 2024-09-08 07:00:37 UTC
README
此包帮助您在将数据保存到数据库之前对其进行格式化。目标是拥有独立处理的单独类来处理数据格式化,从而可以独立进行测试。
安装
通过Composer
$ composer require nwidart/laravel-normalizer
用法
1. 添加特性
在希望数据格式化的模型上添加Nwidart\LaravelNormalizer\Traits\CanNormalizeData
特性。
2. 创建格式化类
您的格式化类需要实现Nwidart\LaravelNormalizer\Contracts\Normalizer
接口。该接口将添加normalize(array $data)
方法。
示例
use Nwidart\LaravelNormalizer\Contracts\Normalizer; final class CustomNormalizer implements Normalizer { /** * Normalize the given data * @param array $data * @return array */ public function normalize(array $data) { if (array_key_exists('name', $data)) { $data['name'] = strtoupper($data['name']); } return $data; } }
此方法需要返回$data
数组。在这里,您可以按需更改接收到的数据。
3. 添加normalizers
类属性
在同一模型上添加一个protected $normalizers
属性。这是您列出格式化器的位置,为数组形式。
示例
use Illuminate\Database\Eloquent\Model; use Nwidart\LaravelNormalizer\Traits\CanNormalizeData; class Product extends Model { use CanNormalizeData; protected $normalizers = [CustomNormalizer::class]; }
4. 在保存/更新时格式化数据
现在您可以开始格式化数据了。例如,这可以在您的存储库类中完成。
示例
public function create($data) { $data = $this->model->normalize($data); return $this->model->create($data); }
变更日志
请参阅CHANGELOG以获取更多信息。
测试
$ composer test
贡献
请参阅CONTRIBUTING和CONDUCT以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件n.widart@gmail.com报告,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。