spoorsny/laravel-south-african-id

用于Laravel的验证规则和Eloquent模型属性,将其转换为封装南非政府发行的个人身份证号的价值对象。

v1.2.0 2024-08-07 10:45 UTC

This package is auto-updated.

Last update: 2024-09-07 11:06:07 UTC


README

Repository+Banner

Latest Version on Packagist Total Downloads GitHub Tests Action Status PHPUnit Code Coverage

用于Laravel的南非身份证

验证规则和将Eloquent模型属性转换为封装南非政府发行的个人身份证号的价值对象,适用于Laravel。

验证器将接受由Faker idNumber 格式化器生成的值,该格式化器是英语(南非)或 en_ZA 区域的一部分。

安装

使用 Composer 安装该包。

composer require spoorsny/laravel-south-african-id

用法

验证规则

请求中提交的值可以被验证为南非身份证。

use Spoorsny\Laravel\Rules\SouthAfricanId;

$request->validate([
    'id_number' => ['required', 'string', new SouthAfricanId()],
]);

如果请求还包含出生日期字段,则可以使用 BirthDateMatchSouthAfricanId 规则验证该字段与南非身份证匹配。在这种情况下,包含南非身份证的字段必须命名为 south_african_id

use Spoorsny\Laravel\Rules\BirthDateMatchSouthAfricanId;
use Spoorsny\Laravel\Rules\SouthAfricanId;

$request->validate([
    'south_african_id' => ['required', 'string', new SouthAfricanId()],
    'birth_date' => [
        'date_format:Y-m-d',
        'before_or_equal:today',
        new BirthDateMatchSouthAfricanId()
    ],
]);

转换

Eloquent 模型的属性可以被转换为一个南非身份证值对象(由Composer包 spoorsny/south-african-id 提供的 \Spoorsny\ValueObjects\SouthAfricanId)的实例。

use Spoorsny\Laravel\Casts\AsSouthAfricanId;

/**
 * Get the attributes that should be cast.
 *
 * @return array<string, string>
 */
protected function casts(): array
{
    return [
        'south_african_id' => AsSouthAfricanId::class,
    ];
}

贡献

要为该包做出贡献,请参阅贡献指南

许可

版权所有 © 2024 Geoffrey Bernardo van Wyk https://geoffreyvanwyk.dev

此文件是spoorsny/laravel-south-african-id软件包的一部分。

spoorsny/laravel-south-african-id软件包是自由软件:您可以重新分发它,也可以在GNU通用公共许可证的条款和条件下修改它,该许可证由自由软件基金会发布,可以是许可证的第3版,也可以是(根据您的选择)任何较新版本。

spoorsny/laravel-south-african-id软件包是在希望它有用的希望下分发的,但没有任何保证;甚至没有关于其适销性或特定用途的隐含保证。有关更多详细信息,请参阅GNU通用公共许可证。

您应该已收到GNU通用公共许可证的副本。如果未收到,请参阅https://gnu.ac.cn/licenses/

有关许可证的副本,请参阅此存储库中的LICENSE 文件。