Codeigniter表单验证(mysql检查)

时间:2011-05-30 21:43:34

标签: php mysql codeigniter frameworks

我在说话的时候正在学习CI,我有一个快速的问题给你们。我目前正在使用form_validation函数来帮助我进行一些快速验证。这很好,但是!如果我想验证已在使用的用户名或电子邮件,我该怎么办?

我猜我需要一个模型和方法来检查用户名或电子邮件是否已被使用。但是,如何将给出的false / true结果与form_validation错误消息结合起来?

2 个答案:

答案 0 :(得分:4)

在codeigniter中,验证系统支持回调,这允许您扩展验证类以满足您的需要,例如:

在您的控制器中,将“用户名”规则更改为:

$this->form_validation->set_rules('username', 'Username', 'callback_username_check');

然后在你的控制器中你可以添加一个名为“username_check”的函数:

function username_check($str)
{
    $this->load->model('your_model');

    if ($this->your_model->checkUsername($str))
    {
        return true;
    }
    else
    {
        $this->form_validation->set_message('username_check', 'The username %s already exist');            
        return false;
    }

在你的模特中:

function checkUsername($username)
{
    $this->db->where('username', $username);
    $query = $this->db->get('users');
    if ($query->num_rows() > 0){
        return true;
    }
    else{
        return false;
    }
}

再见!!

答案 1 :(得分:0)

比你需要使用自定义回调,这些是你自己编写的验证函数。 您可以在codeigniter documentation

中详细了解相关信息