【发布时间】:2016-10-23 15:33:07
【问题描述】:
我正在使用 codeigniter 3.1.1。我是codeigniter的新手,我遇到了一个可以解决的问题。我的回调函数似乎会影响所需的验证,因为似乎跳过了所需的规则,并且即使字段为空,回调函数也会被执行。这是我的代码
$validate_data = array(
array(
'field' => 'pages',
'label' => 'No of pages',
'rules' => 'trim|required|integer|callback_regex_pages'
)
);
$this->form_validation->set_rules($validate_data);
$this->form_validation->set_error_delimiters('<p class="text-danger">','</p>');
我的回调函数
public function regex_pages(){
if(!preg_match('/^\d(\d)?(\d)?$/',$this->input->post('pages'))){
$this->form_validation->set_message('regex_pages', 'The {field} is not valid!');
return false;
}else{
return true;
}
}//end method regex_pages
这只是我以这种方式运行的众多回调之一。如果我删除回调规则,则执行所需的规则
这是我下面的输出
【问题讨论】:
-
输入是什么,显示样本
-
我相信
$this->form_validation->run()将测试所有规则,无论其中任何一个返回false。也就是说,即使 required 规则返回 false 也不会阻止 regex_pages 被调用。
标签: php codeigniter