codeigniter表单验证不会调用回调函数

时间:2014-06-01 21:43:43

标签: php codeigniter

由于某种原因,表单验证不会调用我在规则中设置的回调函数。

这是规则集

    if( ! empty($_POST))
    {
        ci()->form_validation->set_rules('login', 'Username', 'trim|required');
        ci()->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|callback_check_email');           

        if (ci()->form_validation->run() == TRUE)
        {

        }           

    }

和一个功能

public function check_email($str)
{
    ci()->load->model(array('secure_model', 'admin/members_model'));
    $o['username'] =    ci()->input->post('login');
    $o['email'] =       ci()->input->post('email');
    $m = $this->_model->get_row($o);
    if ( ! $m)
    {
        $this->form_validation->set_message('check_email',  lang('unlock_incorrect_login'));
        return FALSE;
    }
    else
    {
        return FALSE;
    }
}   

我设置FALSE两次以查看它是否调用回调函数但它不显示错误消息。所以我认为CI不会试图称之为。有什么问题?

1 个答案:

答案 0 :(得分:0)

check_email()功能中,您使用$this->form_validation代替ci()->。我不确定您为什么使用ci()而不是使用$this的标准CI方式,但这是您的代码中与其他代码相比较的部分。