ThinkPHP 自动验证还支持调用当前 Model 类的一个方法来进行验证。
class UserModel extends Model{ protected $_validate = array( array('email','checkEmail','邮箱已经存在。',1,'callback'), }; // checkEmail方法 protected function checkEmail(){ $User=new Model('User'); // 新用户注册,验证唯一 if(empty($_POST)){ if($user->getByEmail($_POST)){ return false; }else{ return true; } }else{ // 更改资料判断邮箱与其他人的邮箱是否相同 if($user->where("uid!={$_POST} and email='{$_POST}'")->find()){ return false; }else{ return true; } } } }
当 checkEmail 方法返回 false 时,验证就不通过。
可见 ThinkPHP 自动验证功能十分强大,能满足对表单的各种验证要求。