2012-07-19 127 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>'; 

} 

}