Forms 两个表中唯一电子邮件的CI表单验证?
我想检查一下提交的表格,在“学生注册”和“员工”两个表格中,电子邮件是唯一的。我试过这个:Forms 两个表中唯一电子邮件的CI表单验证?,forms,codeigniter,validation,Forms,Codeigniter,Validation,我想检查一下提交的表格,在“学生注册”和“员工”两个表格中,电子邮件是唯一的。我试过这个: $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|tr
$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]');
问题是,若电子邮件在student表中不是唯一的,但在Staff表中是唯一的,那个么它将成功提交表单,因为上次验证将其设置为true。如何解决此问题?您可以使用回调函数
$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;
}
}
尝试:
$this->form_validation->set_rules('email', 'Email', 'required|xss_clean|trim|is_unique[student_registration.email]|is_unique[staffs.email]');
你能提供一些细节吗?