CodeIgniter表单验证,无法获得验证错误

Aar*_*nDS 4 php forms validation codeigniter

我正在尝试使用CodeIgniters表单验证库,尽管我的验证规则似乎有效,但每当我调用validation_errors()时,我都会得到一个空字符串.

这是一段代码片段.

$base_rules = 'required|trim';

$this->_validation_rules = array(
        array(
            'field' => 'name',
            'label' => 'name',
            'rules' => $base_rules . '|alpha_numeric|min_length[5]|max_length[30]'
        ),
        array(
            'field' => 'price',
            'label' => 'Price',
            'rules' => $base_rules . '|decimal'
        ),
        array(
            'field' => 'duration',
            'label' => 'Duration',
            'rules' => $base_rules . '|integer'
        ),
        array(
            'field' => 'booking',
            'label' => 'Booking',
            'rules' => $base_rules . '|integer'
        )
    );
    $this->form_validation->set_rules($this->_validation_rules);

    if ($this->form_validation->run()) {
        // do stuff
    }else{
        // prints an empty string
         var_dump(validation_errors());
         exit;
    }
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样,我怎么能得到我的错误?

Gre*_*ack 5

将validation_errors()放在表单的顶部,并将代码更改为

 if ($this->form_validation->run()) {
        // do stuff
    }else{
       $this->load->view('myform'); //display your form again
    }
Run Code Online (Sandbox Code Playgroud)

validation_errors()只能在视图中弹出.

  • 非常感谢,但有一个问题 - 这是否意味着无法将验证错误存储在flashdata或其他存储中,以便我可以在其他地方重定向?干杯 (5认同)