如何在codeigniter中进行否定形式验证?

DNB*_*ims 6 php forms validation codeigniter

is_unique是不允许值存在于数据库中的表单验证。但是,我可以做相反的事情吗?例如,我想需要数据库中存在的值,所以,我制定了这样的规则:

$this->form_validation->set_rules('email', 'Email', 'required|max_length[32]|valid_email|(!(is_unique[users.email]))');
Run Code Online (Sandbox Code Playgroud)

但似乎没有我预期的成功,有什么推荐吗?谢谢。

Muh*_*eel 3

你可以这样做

$this->form_validation->set_rules('email', 'Email', 'required|max_length[32]|valid_email|callback_email_available');
Run Code Online (Sandbox Code Playgroud)

控制器方式

public function email_available($str)
{
    // You can access $_POST variable
    $this->load->model('mymodel');
    $result =   $this->mymodel->emailAvailability($_POST['email']);
    if ($result)
    {
        $this->form_validation->set_message('email_available', 'The %s already exists');
        return FALSE;
    }else{
        return TRUE;
    }
}
Run Code Online (Sandbox Code Playgroud)

模型 mymodel.php

public function emailAvailability($email)
{
    $this->db->where('email',$email);
    $query  =   $this->db->get('tablename');
    return $query->row();
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

2062 次

最近记录:

12 年,7 月 前