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','不是整数'),
);

附加规则示例:

 

posted @ 2018-12-11 10:55  帅到要去报警  阅读(476)  评论(0编辑  收藏  举报