如果我有一个名为"dbo"的表,我在Codeigniter 3上遇到了问题。Usuarios"我如何插入is_unique验证?问题是is_unique用点分隔表和列。
这是问题所在:
$is_unique = '|is_unique[dbo.Usuarios.Email]';
你怎么看,我的表名有一个点,所以系统采用">dbo"作为表名和"usuarios">作为列名。
这里是完整的代码:
$id= $this->session->userdata('user_id');
$tablas = $this->db->query('SELECT * FROM dbo.Usuarios WHERE ID ='.$id.'');
foreach ($tablas->result_array() as $row){
$samemail = $row['Email'];
}
if($this->input->post('email') != $samemail) {
$is_unique = '|is_unique[dbo.Usuarios.Email]';
}
else {
$is_unique = '';
}
$this->form_validation->set_rules('emailf', 'Email', 'trim|required|valid_email|max_length[20]'.$is_unique);
if ($this->form_validation->run() == FALSE)
{
$this->session->set_flashdata('emailunico', 'El Email ingresado ya esta asociado a otra cuenta.');
redirect('escritorio');
}
else {
#othercode
}
尝试像这样修改is_unique
规则:
$is_unique = '|is_unique[dbo.Email]|is_unique[Usuarios.Email]';