• 声明验证器
    • 验证器
      • @Validator
    • 验证项
      • 类型注解
        • @IsInt
        • @IsString
        • @IsArray
        • @IsBool
        • @IsFloat
      • 条件注解
        • @Enum
        • @Ip
        • @Length
        • @Max
        • @Min
        • @Mobile
        • @NotEmpty
        • @Pattern
        • @Range

    声明验证器

    一个验证器由多个验证条件组合,建议验证器按数据库表进行组合,这样可以充分的重复利用验证器里面的组合条件。

    验证器

    如下定义一个 TestValidator 验证器,由多个验证项(验证器条件)组成。

    1. use Swoft\Validator\Annotation\Mapping\Email;
    2. use Swoft\Validator\Annotation\Mapping\IsInt;
    3. use Swoft\Validator\Annotation\Mapping\IsString;
    4. use Swoft\Validator\Annotation\Mapping\Validator;
    5. /**
    6. * Class TestValidator
    7. *
    8. * @since 2.0
    9. *
    10. * @Validator()
    11. */
    12. class TestValidator
    13. {
    14. /**
    15. * @IsString()
    16. *
    17. * @var string
    18. */
    19. protected $name = 'defualtName';
    20. /**
    21. * @IsInt(message="类型必须传递且整数")
    22. *
    23. * @var int
    24. */
    25. protected $type;
    26. /**
    27. * @IsString(message="邮箱必须传递且字符串")
    28. * @Email(message="email 不是邮箱格式")
    29. *
    30. * @var string
    31. */
    32. protected $email;
    33. /**
    34. * @IsInt()
    35. *
    36. * @var int
    37. */
    38. protected $start = 0;
    39. /**
    40. * @IsInt()
    41. *
    42. * @var int
    43. */
    44. protected $end ;
    45. }

    @Validator

    声明一个验证器

    • name 定义验证器的名称,方便引用,如果不定义默认就是类名全路径。

    验证项

    验证项是组成验证器的唯一条件,标记有类型注解的属性就是一个验证项,一个验证器可以有多个验证项。

    • 属性的默认值就是参数的默认值,如果属性没有定义默认值,代表参数没有定义默认值且必须传递。
    • 一个属性必须定义一个类型注解,否则不是一个验证项且对参数验证无效。
    • 一个属性可以多个条件注解,按照定义顺序验证数据。
    • 默认属性名称就是需要验证的参数名称,也可以通过类型注解的 name 参数映射需要验证的字段名称

    类型注解

    @IsInt

    定义参数必须是整数

    • name 映射需要验证的字段名称,默认属性名称
    • message 验证失败(不是整数或参数没有传递)时的错误提示,默认使用框架内置的。

    @IsString

    定义参数必须是字符串

    • name 映射需要验证的字段名称,默认属性名称
    • message 验证失败(不是字符串或参数没有传递)时的错误提示,默认使用框架内置的。

    @IsArray

    定义参数必须是数组

    • name 映射需要验证的字段名称,默认属性名称
    • message 验证失败(不是数组或参数没有传递)时的错误提示,默认使用框架内置的。

    @IsBool

    定义参数必须是 bool 类型,注意字符串 true false ,会验证成 bool 类型

    • name 映射需要验证的字段名称,默认属性名称
    • message 验证失败(不是 bool 或参数没有传递)时的错误提示,默认使用框架内置的。

    @IsFloat

    定义参数必须是浮点数

    • name 映射需要验证的字段名称,默认属性名称
    • message 验证失败(不是浮点数或参数没有传递)时的错误提示,默认使用框架内置的。

    条件注解

    @Enum

    验证参数值必须在枚举数组里面

    • values 枚举数组集合
    • message 验证失败错误提示,默认使用框架内置的。

    @Ip

    验证参数值是否是 IP 类型

    • message 验证失败错误提示,默认使用框架内置的。

    @Length

    验证参数值长度限制

    • min 最小值(包含当前值)
    • max 最大值(包含当前值)
    • message 验证失败错误提示,默认使用框架内置的。

    @Max

    最大值验证,必须是整数

    • value 最大值(包含当前值)
    • message 验证失败错误提示,默认使用框架内置的。

    @Min

    最小值验证

    • value 最小值(包含当前值)
    • message 验证失败错误提示,默认使用框架内置的。

    @Mobile

    手机号验证

    • message 验证失败错误提示,默认使用框架内置的。

    @NotEmpty

    参数值不能为空验证

    • message 验证失败错误提示,默认使用框架内置的。

    @Pattern

    正则表达式验证

    • message 验证失败错误提示,默认使用框架内置的。

    @Range

    参数值范围验证

    • min 最小值(包含当前值)
    • max 最大值(包含当前值)
    • message 验证失败错误提示,默认使用框架内置的。

    暂时官方提供了这些条件验证,如果有其它需求可以自己实现或反馈给开发组