PHP: CodeIgniter $this->form_validation->run() 验证两次?



>完成

没有机会在控制器操作中使用两次 $this->form_validation->run() 吗?CodeIgniter似乎只验证了第一条规则。我想使用 $this->form_validation->run() 两次,因为我需要一个验证值来;)第二个验证规则。

$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)
    {
        //...
    }
}

尝试在加载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)
    {
        //...
    }
}

在核心文件中 - CodeIgniter_2.1.3/系统/库/Form_validation.php添加一行

$this->_field_data = array();

在方法运行();

public function run($group = '')
    {
        // add this line for clear field data to use validation many times
        $this->_field_data = array();

最新更新