Codeigniter表单验证错误 - 无法访问与您的字段名称对应的错误消息

时间:2015-08-24 19:36:19

标签: php codeigniter

控制器中的规则:

$this->form_validation->set_rules('text', $this->lang->line('text_input_name'), 'required|trim|callback_ValidateTooltipTags['. $this->input->post('text') .']');

控制器中的回调:

public function ValidateTooltipTags($string)
{
    $this->load->model('library_model');

    if($this->library_model->ValidateTooltipTags($string))
    {
        return TRUE;
    }

    else
    {
        $this->form_validation->set_message('ValidateTooltipTags', $this->lang->line('site_message_invalid_tooltip_tags'));

        return FALSE; //or TRUE, it doesn't matter i always get validation error
    }
}

我总是得到验证错误,即使我在回调中将FALSE更改为TRUE。你有什么想法,有什么不对吗?非常感谢你。

2 个答案:

答案 0 :(得分:0)

我想,我明白了:

您不必向验证功能提交值,只需调用它:

$this->form_validation->set_rules('text', $this->lang->line('text_input_name'), 'required|trim|callback_ValidateTooltipTags');

<强>更新

您不必传输字段值,但您必须使用此参数编写回调函数,就像您所做的那样。 Codeigniter正在为您提交此值:

public function ValidateTooltipTags($string)
{
    $this->load->model('library_model');

    if($this->library_model->ValidateTooltipTags($string))
    {
        return TRUE;
    }

    else
    {
        $this->form_validation->set_message('ValidateTooltipTags', $this->lang->line('site_message_invalid_tooltip_tags'));

        return FALSE; //or TRUE, it doesn't matter i always get validation error
    }
}

另请参阅文档:http://www.codeigniter.com/userguide3/libraries/form_validation.html#callable-use-anything-as-a-rule

答案 1 :(得分:0)

我得到了它,而不是使用它:

$text = $this->input->post('text');
$this->form_validation->set_rules('text', $this->lang->line('text_input_name'), 'required|trim|callback_ValidateTooltipTags[$text]');

使用此:

$this->form_validation->set_rules('text', $this->lang->line('text_input_name'), 'required|trim|callback_ValidateTooltipTags['. $this->input->post(\'text\') .']');

或者:

{{1}}

感谢你的时间,Joerg。