控制器中的规则:
$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。你有什么想法,有什么不对吗?非常感谢你。
答案 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。