|
本帖最后由 dlei 于 2017-11-10 23:11 编辑
做表单编辑,判断用户名如果已经更改了,走规则,判断数据库是否唯一,判断之后,下面当用户原来的邮箱已经更改的话,再走判断邮箱的规则,就会不起作用,返回的判断值一直都是true。如果用户名不变,还是原来的用户名,不触发第一个规则验证,第二个邮箱改变,触发邮箱规则依然起作用,那是不是说CI的同一个表单的验证规则只能写一个,也就是触发一次,再次触发就不起作用了呢?
规则:
'ad_name'=>array(
array(
'field' => 'username',
'label' => '登录名',
'rules' => 'required|min_length[6]|is_unique[admin.username]'
)
),
'ad_email'=>array(
array(
'field' => 'email',
'label' => '邮箱',
'rules' => 'required|valid_email|is_unique[admin.email]'
)
)
调用规则:
//载入验证类
$this->load->helper('form');
$this->load->library('form_validation');
if($username!=$old_name){
//执行验证(返回布尔值)
$rel=$this->form_validation->run('ad_name');
//返回字符串类型-所有的错误信息
$info=$this->form_validation->error_string();
if(!$rel){
如果不符合规则,做出提示
}
符合规则,则继续往下走验证邮箱
}
if($email!=$old_email){
//执行验证(返回布尔值)
$rel=$this->form_validation->run('ad_email');
//返回字符串类型-所有的错误信息
$info=$this->form_validation->error_string();
if(!$rel){
如果不符合规则,做出提示
}
符合规则继续执行后面的语句
}
|
|