Thinkphp 中$_validate 关键字是在模型中定义的自动验证数据的功能。验证的规则可以是进行数据类型、业务规则、安全判断等方面的验证操作。
数据验证有两种方式:
- 静态方式:在模型类里面通过$_validate属性定义验证规则。
- 动态方式:使用模型类的validate方法动态创建自动验证规则。
无论是什么方式,验证规则的定义是统一的规则,定义格式为:
array(
array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]),
......);
说明
参数一:验证字段 (必须)
需要验证的表单字段名称,这个字段不一定是数据库字段,也可以是表单的一些辅助字段,例如确认密码和验证码等等。有个别验证规则和字段无关的情况下,验证字段是可以随意设置的,例如expire有效期规则是和表单字段无关的。如果定义了字段映射的话,这里的验证字段名称应该是实际的数据表字段而不是表单字段。
参数二:验证规则 (必须)
要进行验证的规则,需要结合附加规则,如果在使用正则验证的附加规则情况下,系统还内置了一些常用正则验证的规则,可以直接作为验证规则使用,包括:require 字段必须、email 邮箱、url URL地址、currency 货币、number 数字。
参数三:提示信息 (必须)
用于验证失败后的提示信息定义
参数四:验证条件 (可选)
包含下面几种情况:
- self::EXISTS_VALIDATE 或者 0 表示只有字段存在时验证(默认)
- self::MUST_VALIDATE 或者 1 表示无论有无字段都必须验证
- self::VALUE_VALIDATE 或者 2 表示字段值不是为空(即有填数据)的时候就验证