1

我遇到了一个问题,我看不到为什么 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";
    }
}
4

2 回答 2

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>';

}

}
于 2014-08-04T20:20:23.417 回答
0

您没有忘记$config在运行验证之前实际使用该文件吗?

$this->form_validation->set_rules($config);
于 2012-07-19T12:12:16.650 回答