ekut/spatie-dto-validators

spatie/data-transfer-object 包的验证器集合

v1.0.1 2022-05-16 04:52 UTC

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

    #[Email()]

有效:'some@fake.com', 'some1@fake.com', 'some_1@fake.com', 'one.more.some@fake.com'。

无效:'fake.com', 'fake@com'。

Url

    #[Url()]

有效

无效:'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)。更多信息请参阅 许可证文件