thinkphp自动验证详解
自动验证时THINKPHP提供的一种比较好的验证方式,可以在使用create创建数据对象的时候自动进行数据验证。
数据进行自动验证的方式有两种:
1、静态方式:在模型类里面通过$_validate属性定义验证规则。
2、动态方式:使用模型类的validate方法动态创建自动验证规则。
无论怎样,配置都是这样的:
array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]), ......);
注意这里有五个选项:
验证字段:就是需要进行验证的字段。
验证规则:系统内置或自定义的规则。
错误提示:验证出错的时候做的返回信息。
验证条件:
self::EXISTS_VALIDATE 或 0,表示存在字段就验证(默认) ; self::MUST_VALIDATE 或 1,表示必须验证; self::VALUE_VALIDATE 或 2,表示值不为空的时候验证。
附加规则:添加附加的规则进行验证。
验证时间:
self::MODEL_INSERT 或 1 新增数据时验证; self::MODEL_UPDATE 或 2 编辑数据时验证; self::MODEL_BOTH 或 3 全部情况下验证(默认)
具体示例:
protected $_validate = array( array('title','require','标题不能为空!'), array('title','','标题已经存在!',0,'unique',1), array('name','english','标识不是纯英文'), array('name','require','标识不能为空!'), array('name','','标识已经存在!',0,'unique',1), array('config','require','配置值不能为空!'), array('config','','配置值已经存在!',0,'unique',1), array('sort','integer','不是整数'), );
附加规则示例: