mallardduck / extended-validator-laravel
Laravel的Validator类的扩展,提供了一些额外的验证规则。
Requires
- php: ^8.0
- illuminate/validation: ^8.62 || ^9.33 || ^10.0
Requires (Dev)
- brianium/paratest: ^6.3
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.0
- escapestudios/symfony2-coding-standard: ^3.11
- friendsofphp/php-cs-fixer: ^3.14
- nunomaduro/phpinsights: ^2.7
- orchestra/testbench: ^6.24 || ^7.1 || ^8.0
- phan/phan: ^5.2
- php-coveralls/php-coveralls: ^2.4
- phpcompatibility/php-compatibility: ^9.3
- phpstan/phpstan: ^0.12.99
- phpunit/phpunit: ^9.5.10
- squizlabs/php_codesniffer: ^3.6
README
Laravel的Validator类的扩展,提供了一些额外的验证规则。
安装
您可以通过composer安装此包
composer require mallardduck/extended-validator-laravel
只需引入项目,Laravel的Service Provider自动发现将完成剩余的操作。
所有新规则将自动注册以供使用,无需任何配置。
要求
- PHP 8.x
- Laravel 8.32.x(或更高版本)
过去的PHP版本支持
可用的规则
PublicIp
PublicIpv4
NonPublicIpv4
NotInIf
NotInIfValue
PublicIpv6
ProhibitedIf
ProhibitedWith
ProhibitedWithAll
PublicIp
确定验证字段是否为有效的公共IP地址。
就像Laravel的ip
规则一样,但IP地址不能在私有或保留范围内。
$rules = [
'ip' => 'required|public_ip',
];
PublicIpv4
确定验证字段是否为有效的公共IPv4地址。
就像Laravel的ipv4
规则一样,但IP地址不能在私有或保留范围内。
$rules = [
'ip' => 'required|public_ipv4',
];
NonPublicIpv4
确定验证字段是否为有效的非公共IPv4地址。
就像Laravel的ipv4
规则一样,但IP地址应在私有或保留范围内。
$rules = [
'ip' => 'required|non_public_ipv4',
];
NotInIf
not_in_if:anotherfield,value,...
只有当给定字段为真时,验证字段才不能包含在给定的值列表中。
将其视为not_in
规则的条件版本。
$rules = [
'size' => ['sometimes', 'not_in_if_value:is_square,large,super', 'in:small,medium,large,super',],
'is_square' => ['required', 'boolean'],
];
NotInIfValue
not_in_if_value:anotherfield,anotherfield_value,value,...
只有当anotherfield
字段的值为anotherfield_value
时,验证字段才不能包含在给定的值列表中。
将其视为not_in
规则的条件版本。
$rules = [
'size' => ['sometimes', 'not_in_if_value:shape,square,large,super', 'in:small,medium,large,super',],
'shape' => ['required', 'in:square,rectangle'],
];
PublicIpv6
确定验证字段是否为有效的公共IPv6地址。
就像Laravel的ipv6
规则一样,但IP地址不能在私有或保留范围内。
$rules = [
'ip' => 'required|public_ipv4',
];
ProhibitedIf
现在建议您使用Laravel原生版本的此规则。此包现在需要包含此规则的版本,因此应该有。
更多信息请参阅文档:https://laravel.net.cn/docs/8.x/validation#rule-prohibited-if
Probhits
又名ProhibitedWith
尽管略有不同,但现在建议您使用Laravel原生版本的此规则。此包将需要该版本,因此规则将存在。
更多信息请参阅:https://laravel.net.cn/docs/9.x/validation#rule-prohibits
ProhibitedWithAll
只有当所有其他指定的字段都存在时,才禁止使用验证字段。
将其视为Laravel的required_with_all
的相反。
$rules = [
'name' => 'prohibited_with_all:first_name,middle_name,last_name',
'first_name' => 'sometimes',
'middle_name' => 'sometimes',
'last_name' => 'sometimes'
];
测试
composer test
composer check-style
注意:测试是这些规则潜在用法的绝佳示例。
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。