pixelpeter/laravel-isocodes-validation

ronanguilloux 的 IsoCodes 验证库的 Laravel 8+ 包装器

v8.0.1 2021-10-11 14:32 UTC

This package is auto-updated.

Last update: 2024-09-11 21:02:31 UTC


README

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

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

安装

步骤 1: 通过 Composer 安装

composer require pixelpeter/laravel-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);

带参考参数的示例

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

只需将包含参考的字段名称传递给规则。

// 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。请参阅 许可文件 了解更多信息。