声明验证器

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

验证器

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

use Swoft\Validator\Annotation\Mapping\Email;
use Swoft\Validator\Annotation\Mapping\IsInt;
use Swoft\Validator\Annotation\Mapping\IsString;
use Swoft\Validator\Annotation\Mapping\Validator;

/**
 * Class TestValidator
 *
 * @since 2.0
 *
 * @Validator()
 */
class TestValidator
{
    /**
     * @IsString()
     *
     * @var string
     */
    protected $name = 'defualtName';

    /**
     * @IsInt(message="类型必须传递且整数")
     *
     * @var int
     */
    protected $type;

    /**
     * @IsString(message="邮箱必须传递且字符串")
     * @Email(message="email 不是邮箱格式")
     *
     * @var string
     */
    protected $email;

    /**
     * @IsInt()
     *
     * @var int
     */
    protected $start = 0;

    /**
     * @IsInt()
     *
     * @var int
     */
    protected $end ;
}

@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 验证失败错误提示,默认使用框架内置的。

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

/docs/2.x/zh-CN/validator/statement.html
progress-bar