dongnao9525 2015-08-24 19:36
浏览 52
已采纳

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.

  • 写回答

2条回答 默认 最新

  • dongzhan8620 2015-08-24 20:18
    关注

    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?