我已经陷入了一个问题,我无法理解为什么codeIgniter忽略了我在使用以下代码的“form_validation.php”中的规则设置。
$config = array(
'racedetails' => array(
array(
'field' => 'race_memberno',
'label' => 'MembershipNumber',
'rules' => 'required'
),
array(
'field' => 'race_penalties',
'label' => 'Penalties',
'rules' => 'required'
)
);
然后我使用:
在我的控制器上调用验证集$this->form_validation->run('racedetails');
然而,它总是在运行时表示错误,表单运行正常并且没有返回错误,还有其他我可能错过的东西吗?
以上验证运行功能在以下内容中运行(由Dale请求)
public function index($id){
$this->load->library('form_validation');
if($this->form_validation->run('racedetails')){$validated++;}
if($validated != 1){
$this->process_template_build('entries/entry',$data);
}else {
echo "Validation Passed";
}
}
答案 0 :(得分:1)
我有同样的问题,原因是,我使用自己的Form_validation类来全局修改错误输出。
我忘了将规则传递给父构造函数。这就是它如何与自己的MY_Form_Validation类一起工作:
class MY_Form_validation extends CI_Form_validation {
public function __construct($rules = array())
{
parent::__construct($rules);
$this->_error_prefix = '<div class="alert alert-danger" role="alert"><span class="title"><i class="icon-remove-sign"></i> ERROR</span>';
$this->_error_suffix = '</div>';
}
}
答案 1 :(得分:0)
在运行验证之前,您是否忘记实际使用$config
文件?
$this->form_validation->set_rules($config);