Validation Codeigniter回调验证问题

Validation Codeigniter回调验证问题,validation,codeigniter,callback,Validation,Codeigniter,Callback,我想创建一个回调函数,用于在验证期间检查用户名/电子邮件地址是否已在数据库中。。。问题是我似乎无法让它工作 这就是回调函数: function callback_username_available($username) { if($this->user_model->username_available($username)) { return TRUE; } else { $this->form_val

我想创建一个回调函数,用于在验证期间检查用户名/电子邮件地址是否已在数据库中。。。问题是我似乎无法让它工作

这就是回调函数:

function callback_username_available($username)
{
    if($this->user_model->username_available($username))
    {
        return TRUE;
    }
    else
    {
        $this->form_validation->set_message('username_available', 'ERROR');
        return FALSE;
    }
}
这就是验证逻辑:

// setup form validation rules
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'username', 'callback_username_available');

if($this->form_validation->run() == FALSE)
{
    // validation errors
}
else
{
    // no validation errors
}
我已经在这几个小时了,不知道我做错了什么。。。这两个函数都在同一个控制器中,所有其他标准验证规则都可以正常工作

即使我将回调函数设置为仅返回FALSE,它仍然会验证用户名


有什么想法吗,伙计们。。。这让我现在非常恼火:S

要在CI中调用回调,您不需要将函数命名为“回调函数”my_函数”-它会自动附加

这应该起作用:

function username_available($username)
{
    if($this->user_model->username_available($username))
    {
        return TRUE;
    }
    else
    {
        $this->form_validation->set_message('username_available', 'ERROR');
        return FALSE;
    }
}

// set the rule
    $this->form_validation->set_rules('username', 'Username', 'callback_username_available');

// lets do this ~

if ($this->form_validation->run() == FALSE)
{
    $this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}
为了通过调用函数“callback\u username\u available”进行澄清,CI正在尝试查找


callback\u callback\u username\u available(),它当然不存在。

要在CI中调用回调,您不需要将函数命名为“callback\umy\u function”-它会自动附加在后面

// setup form validation rules
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'username', 'callback_callback_username_available');

if($this->form_validation->run() == FALSE)
{
    // validation errors
}
else
{
    // no validation errors
}
这应该起作用:

function username_available($username)
{
    if($this->user_model->username_available($username))
    {
        return TRUE;
    }
    else
    {
        $this->form_validation->set_message('username_available', 'ERROR');
        return FALSE;
    }
}

// set the rule
    $this->form_validation->set_rules('username', 'Username', 'callback_username_available');

// lets do this ~

if ($this->form_validation->run() == FALSE)
{
    $this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}
为了通过调用函数“callback\u username\u available”进行澄清,CI正在尝试查找


callback\u callback\u username\u available()当然不存在。

太好了。。。你是个天才伙伴。谢谢你的帮助:DExcellent。。。你是个天才伙伴。感谢您的帮助:Dcallback是调用验证或函数进行验证的方法。您必须从callback开始,您的函数如callback、callback、username、availablecallback是调用验证或函数进行验证的方法。您必须从callback开始,函数如回调\回调\用户名\可用
// setup form validation rules
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'username', 'callback_callback_username_available');

if($this->form_validation->run() == FALSE)
{
    // validation errors
}
else
{
    // no validation errors
}