2012-07-19 179 views
1

我已经遇到了一个问题,我看不出为什么codeIgniter忽略了我在使用以下代码的“form_validation.php”中的规则设置。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'); 

跑时,但它总是指出假的,窗体运行正常,没有返回错误,有没有财产以后否则我可能错过了?

上述验证运行函数中运行以下(通过戴尔的要求)

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

你可以发布这个方法的代码吗? – Dale 2012-07-19 12:02:44

+0

你试过$ this-> form_validation-> run($ config ['racedetails'])吗? – 2012-07-19 12:06:07

+0

Yan - 是的,尝试使用$ config,它只是返回一个未定义的变量。 – yardster 2012-07-19 12:14:09

回答

0

你没忘记在运行验证之前实际使用$config文件?

$this->form_validation->set_rules($config); 
+0

这应该定义在哪里?因为这会在控制器构造函数或函数中使用未定义的变量“$ config”。 – yardster 2012-07-19 12:23:02

+0

就在你的'$ config = array(......);'之下并且在运行验证之前。 – Robert 2012-07-19 12:25:15

+0

我有这样的印象,它自动加载/application/config/form_validation.php中的规则 http://codeigniter.com/user_guide/libraries/form_validation.html#savingtoconfig – yardster 2012-07-19 12:28:25

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

} 

}