声明验证器

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

验证器

如下定义一个 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 验证失败错误提示,默认使用框架内置的。

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