Forms PHP:CodeIgniter$this->;表格验证->;运行()验证两次?

Forms PHP:CodeIgniter$this->;表格验证->;运行()验证两次?,forms,codeigniter,validation,Forms,Codeigniter,Validation,完成 是否有机会在控制器操作中使用$this->form\u validation->run()两次?CodeIgniter似乎只验证第一条规则。我想使用$this->form\u validation->run()两次,因为我需要第二个验证规则的验证值;) 加载表单验证库时,是否尝试将别名指定给表单验证库?这可能会解决问题 $this->load->library('form_validation','','validation1'); $this->validation1-

完成

是否有机会在控制器操作中使用$this->form\u validation->run()两次?CodeIgniter似乎只验证第一条规则。我想使用$this->form\u validation->run()两次,因为我需要第二个验证规则的验证值;)


加载表单验证库时,是否尝试将别名指定给表单验证库?这可能会解决问题

$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/system/libraries/Form_validation.php 加一行

$this->_field_data = array();
在方法run()中


如果您真的尝试过,我看不出有任何理由它不起作用。是的-第二个验证规则包含“必需”和“大于”,并且Post Var为空。但是form_validation->run()返回true。。。o、 有可能它正在保存第一次运行的值?尽管这毫无意义。看看下面我的答案,看看这是否有效。嗨,谢谢你的帮助-我发现了错误。我的规则是:“必需的”|大于['.$val-0.01.']。当CodeIgniter获得标签值-0.01而不是$val-0.01的实际结果时,这不起作用。现在验证也可以工作两次:)。Codeigniter没有任何匹配>=的规则,所以我必须做一个回调来检查这个?是的,那将是一个回调函数,很高兴它能工作。
$this->_field_data = array();
public function run($group = '')
    {
        // add this line for clear field data to use validation many times
        $this->_field_data = array();