1

終わり

コントローラアクションで$this->form_validation-> run()を2回使用する機会はありませんか?CodeIgniterは最初のルールのみを検証しているようです。$ this-> form_validation-> run()を2回使用したいのは、2番目の検証ルールに検証済みの値が必要だからです;)。

$this->form_validation->set_rules(...);
if($this->form_validation->run() === true)
{
    $value = $this->..._model->get( ...);  //use of validated value
    $this->form_validation->set_rules(...); //use of $value
    if($this->form_validation->run() === true)
    {
        //...
    }
}
4

2 に答える 2

0

ロード時に form_validation ライブラリにエイリアスを割り当ててみませんか? それは問題を解決するかもしれません。

$this->load->library('form_validation','','validation1');
$this->validation1->set_rules(...);
if($this->validation1->run() === true)
{
    $value = $this->..._model->get( ...);  //use of validated value
    $this->load->library('form_validation','','validation2');
    $this->validation2->set_rules(...); //use of $value
    if($this->validation2->run() === true)
    {
        //...
    }
}
于 2013-01-29T18:31:30.007 に答える
0

コア ファイル - CodeIgniter_2.1.3/system/libraries/Form_validation.php に 1 行追加

$this->_field_data = array();

メソッドで run();

public function run($group = '')
    {
        // add this line for clear field data to use validation many times
        $this->_field_data = array();
于 2015-07-27T14:25:50.417 に答える