如何做一个反面表单验证在codeigniter? [英] How to do a negative form validation in codeigniter?

查看:93
本文介绍了如何做一个反面表单验证在codeigniter?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

is_unique 是不允许值存在于数据库中的表单验证。
但是,我可以做对立的吗?例如,我想要在数据库中存在的值
,所以,我使这样的规则:

is_unique is the form validation which not allow the value exist in the database. But, can I do the opposite one? for example, I would like to need the value which is exist in the database, so, I make the rules like this:

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

但是似乎没有我预期的成功,任何建议?谢谢。

But it seems not success as I expected, any recommends? Thanks.

推荐答案

您可以这样做

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

控制器方法

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;
    }
}

模型mymodel.php

Model mymodel.php

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

这篇关于如何做一个反面表单验证在codeigniter?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆