ekut / spatie-dto-validators
spatie/data-transfer-object 包的验证器集合
Requires
- php: ^8.0
- spatie/data-transfer-object: ^3.7
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-16 09:38:07 UTC
README
安装
您可以通过 composer 安装此包
composer require ekut/spatie-dto-validators
- 注意:此包仅支持
php:^8.0
。
使用方法
如 Spatie DTO 文档中的 验证 章节所示
This package doesn't offer any specific validation functionality,
but it does give you a way to build your own validation attributes.
因此,在这个包中,我们仅收集了一组经过测试的验证器,您可以在项目中轻松使用它们,与 Spatie DTO 一起。
use Ekut\SpatieDtoValidators\MinLength; use Spatie\DataTransferObject\DataTransferObject; class Foo extends DataTransferObject { #[MinLength(10)] public ?string $property1; #[GreaterThan(10)] public ?int $property2; }
如果违反了任何验证,将抛出 Spatie\DataTransferObject\Exceptions\ValidationException
,并附带相关的用户友好文本消息。
实现验证器的列表
基本
Blank
#[Blank()]
有效值
-
false (布尔值)
-
0 (整数)
-
[] (空数组)
-
'' (空字符串)
-
"" (空字符串)
-
null
-
注意:字符串 '0' 是无效值。
NotBlank
#[NotBlank(true|false)]
布尔参数表示:是否允许为 null?
无效值
-
false (布尔值)
-
0 (整数)
-
[] (空数组)
-
'' (空字符串)
-
"" (空字符串)
-
null (如果参数不允许 null)
-
注意:字符串 '0' 是有效值。
NotNull
#[NotNull()]
仅无效值: null
IsNull
#[IsNull()]
仅有效值: null
IsTrue
#[IsTrue()]
有效值
- true (布尔值)
- 1 (整数)
- '1' (字符串)
IsFalse
#[IsFalse()]
有效值
- false (布尔值)
- 0 (整数)
- '0' (字符串)
- null
字符串
MinLength
#[MinLength(3)]
有效:'car', 'lady', 333 等。
无效:'on', 'a', 12, 1 等。
MaxLength
#[MaxLength(3)]
有效:'car', 'on', 'a', 333, 12, 1。
无效:'lady', 'month', 9999 等。
#[Email()]
有效:'some@fake.com', 'some1@fake.com', 'some_1@fake.com', 'one.more.some@fake.com'。
无效:'fake.com', 'fake@com'。
Url
#[Url()]
有效
- https://www.example.com,
- http://www.example.com,
- http://blog.example.com,
- http://www.example.com/product,
- http://www.example.com/products?id=1&page=2,
- http://www.example.com#up,
- http://www.site.com:8008,
- //www.site.com:8008
无效:'some fake', 'www.example.com', 'example.com'
比较
EqualTo
#[EqualTo(3)]
有效值:3, '3'。
NotEqualTo
#[EqualTo(3)]
无效值:3, '3'。
IdenticalTo
#[IdenticalTo(3)]
仅有效值:3。
NotIdenticalTo
#[NotIdenticalTo(3)]
仅无效值:3。
LessThan
#[LessThan(3)]
LessThanOrEqual
#[LessThanOrEqual(3)]
GreaterThan
#[GreaterThan(3)]
GreaterThanOrEqual
#[GreaterThanOrEqual(3)]
DivisibleBy
#[DivisibleBy(3)] #[DivisibleBy(0.35)]
Choice
Choice
#[Choice([0, '1', false])]
许可证
MIT 许可证 (MIT)。更多信息请参阅 许可证文件。