mallardduck/extended-validator-laravel

Laravel的Validator类的扩展,提供了一些额外的验证规则。

4.0.2 2023-02-16 20:33 UTC

README

Maintainability Test Coverage codecov Coverage Status

Laravel的Validator类的扩展,提供了一些额外的验证规则。

安装

您可以通过composer安装此包

composer require mallardduck/extended-validator-laravel

只需引入项目,Laravel的Service Provider自动发现将完成剩余的操作。
所有新规则将自动注册以供使用,无需任何配置。

要求

  • PHP 8.x
  • Laravel 8.32.x(或更高版本)

过去的PHP版本支持

可用的规则

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)。请参阅许可证文件以获取更多信息。