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

Rule in controller:

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

Callback in controller:

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

I always get validation error, even if i change FALSE in callback to TRUE. Do you have any ideas, what is wrong? Thank you very much.

I think, I got it:

You have not to submit a value to the validation function, just call it:

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

Update:

You don't have to transmit the field value, but you have to write your callback function with this parameter, like you have done. Codeigniter is submitting this value for you:

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

See also the documentation: http://www.codeigniter.com/userguide3/libraries/form_validation.html#callable-use-anything-as-a-rule

I got it, instead of using this:

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

Use this:

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

Or:

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

Thank you for your time, Joerg.