ThinkPHP批量验证的设计问题

By | 2014年4月7日

ThinkPHP批量验证存在设计问题,比如对一个字段多次验证,第一个条件验证失败之后不应该再去验证第二个,严格的条件应该放在$_validate的数组的下面,而返回错误信息却是最严格的验证结果。比如下面这个例子,总不能用户原密码都没有填,就告诉用户原密码输入是错的吧,为了完成目的,我只能写成如下这样,但是这样一来就把原密码和数据库进行比对,无论用户是否输入是否为空,这一个缺陷我觉得可以自己修改一下Model类的autoValidation()方法。

protected $_validate= array(
    array('password','checkCurrentPassword','当前密码输入不正确!',1,'callback'),
    array('password1','isPasswordChanged','新密码不能和原密码一致!',1,'callback'),
    array('password1','6,16','新密码长度必须为6~16位!',1,'length'),
    array('password2','password1','两次密码输入不一致',1,'confirm'),
    array('password','require','当前密码不能为空!'),
    array('password1','require','新密码不能为空'),
);

 

Category: PHP