对应模块的model中:
<?php
namespace Admin\Model;
use Think\Model;
class UserModel extends Model{ // UserModel对应user表
protected $patchValidate=true; //批量提示错误
//自动检测
protected $_validate=array(
array('username','checkName','用户名必须是4-8位且第一位为字母或者下划线',0,'function'), //自定义函数验证,在common里
array('username','require','用户名必须填写!'), //默认情况下用正则进行验证
array('username','','用户名称已经存在!',0,'unique',1), //在新增的时候验证字段是否唯一
array('password','checkPwd','密码长度必须为6-18个字符且第一位为字母',0,'function'), //自定义函数验证
array('password','require','密码必须填写!'),
array('repwd','pwd','两次密码不一致',0,'confirm'), //验证确认密码是否和密码一致
array('nickname','nickName','昵称长度必须为6-12个字符',0,'function'), //自定义函数验证
array('nickname','require','昵称必须填写!'),
array('tel','/^1[3|4|5|7|8|9|]\d{9}$/','手机号码格式不正确而且必须是11位数字',0,'regex'),
array('tel','','手机号码已存在!',0,'unique',1), //在新增的时候验证字段是否唯一
array('email','email','邮箱格式不正确',0),
array('email','','邮箱已经存在!',0,'unique',1), //在新增的时候验证字段是否唯一
);
//自动完成给密码加密
protected $_auto=array(
array('pwd','md5',3,'function'), //对pwd字段在新增和编辑的时候使md5函数处理
);
}
?>
对应function中:
//用户名检测
function checkName($username){
if(!preg_match('/^[a-zA-Z_]{1}\w{3,7}$/', $username)){
return false;
}else{
return true;
}
}
//密码检测
function checkPwd($password){
if(!preg_match('/^[a-zA-Z]{1}\w{5,17}$/', $password)){
return false;
}else{
return true;
}
}
//昵称检测
function nickName($nickname){
if(!preg_match('/^\S{6,12}$/', $nickname)){
return false;
}else{
return true;
}
}
对应controller中:
public function user_modi_check(){
$user=D('user');
if(!$user->create($_POST,1)){ //未注册成功,即验证失败,输出错误提示,只在新增时验证为1的规则
foreach($user->getError() as $val){
$this->error($val);
}
}
}
对应HTML中:
<form method="post" action="{:U('index/user_modi_check')}" enctype="multipart/form-data" "return checkThis()">
<input name="id" type="hidden" id="id" value="{$rel['id']}" /> //name的值必须与对应表的字段名相同
</form>