CI表单验证两个表中的唯一电子邮件?

时间:2015-08-07 12:52:11

标签: forms codeigniter validation

我想查看表单提交,该电子邮件在两个表格中是唯一的"学生注册"和#34;员工"。我试过这个:

$this->form_validation->set_rules('email', 'Email', 'required|xss_clean|trim|is_unique[student_registration.email]');
$this->form_validation->set_rules('email', 'Email', 'required|xss_clean|trim|is_unique[staffs.email]');

问题是,如果电子邮件在学生表中不是唯一的,但在员工表中是唯一的,它会成功提交表单,因为上次验证设置为true。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以使用回调功能

 $this->form_validation->set_rules('email', 'email', 'required|callback_has_email[email]');

回叫功能

 public function has_email($str)
        {

/*do your stuff check for email*/
            if (true)
            {
                $this->form_validation->set_message('has_email', 'The %s field already register');
                return FALSE;
            }
            else
            {
                return TRUE;
            }
        }

答案 1 :(得分:0)

尝试:

$this->form_validation->set_rules('email', 'Email', 'required|xss_clean|trim|is_unique[student_registration.email]|is_unique[staffs.email]');