pixelpeter/laravel5-isocodes-validation

Laravel 5 对 ronanguilloux 的 IsoCodes 验证库的包装

v3.0.0 2019-03-15 17:04 UTC

README

Latest Version on Packagist Software License Travis Build Scrutinizer Quality Scrutinizer Build Total Downloads Coverage Status

A simple Laravel 5 wrapper for the IsoCodes Validation library from ronanguilloux.

对于 Laravel 8 兼容版本,请使用 https://github.com/pixelpeter/laravel-isocodes-validation

安装

步骤 1: 通过 Composer 安装

composer require pixelpeter/laravel5-isocodes-validation

步骤 2: 添加服务提供者

(从 v2.x 版本开始不需要,因为支持自动发现)

app/config/app.php 中添加服务提供者

'provider' => [
    ...
    Pixelpeter\IsoCodesValidation\IsoCodesValidationServiceProvider::class,
    ...
];

用法

简单示例

// Checking out your e-commerce shopping cart?
$payload = [
    'creditcard' => '12345679123456'
];
$rules = [
    'creditcard' => 'creditcard'
];

$validator = Validator::make($payload, $rules);

带有参考参数的示例

某些规则需要参考来验证(例如,对于 zipcode,需要 country)。

只需将存储参考的名称的场的名称传递给规则。

// Sending letters to the Labrador Islands ?
$payload = [
    'zipcode' => 'A0A 1A0',
    'country' => 'CA'
];
$rules = [
    'zipcode' => 'zipcode:country'
];

$validator = Validator::make($payload, $rules);

// Publishing books?
$payload = [
    'isbn' => '2-2110-4199-X',
    'isbntype' => 13
];
$rules = [
    'zipcode' => 'isbn:isbntype'
];

$validator = Validator::make($payload, $rules);

使用数组点和表示法的示例

(在 v3.x 版本中添加)

根据 @otr-tomek 的建议,我添加了对所有使用点表示法作为输入的验证方法的支持。

$payload = [
    'data' => [
        [
            'country' => 'DE',
            'zipcode' => 63741
        ],
        [
            'country' => 'AT',
            'zipcode' => 1180
        ]
  ] 
];

$validator = Validator::make($payload, [
    'data.*.zipcode' => 'zipcode:data.*.country'
]);

验证错误消息

错误消息可以包含字段名称和值以及参考值

$payload = [
    'phonenumber' => 'invalid',
    'country' => 'GB'
];
$rules = [
    'phonenumber' => 'phonenumber:country'
];

$validator = Validator::make($payload, $rules);

print $validator->errors()->first(); // The value "invalid" of phonenumber is not valid for "GB".

更多示例

有关更多示例和文档,请参阅 IsoCodes Validation library

测试

使用以下命令运行测试

vendor/bin/phpunit

许可证

仅限于 GNU 通用公共许可证 v3.0。请参阅 许可证文件 了解更多信息。