Codeigniter表单验证意外行为

时间:2015-06-24 13:58:04

标签: php forms codeigniter validation

我有经典的CI控制器和索引方法,在我试图验证一个非常简单的表单条目的方法中。

public function index() {

$this->form_validation->set_rules('status', 'Status', 'trim');

if($this->form_validation->run()) {
    echo "true";

    $quote = array(
        'status' => $this->input->post('status'),
        'text' => $this->input->post('text'),
        'author' => $this->input->post('author'),
    );

    $this->quote_model->add($quote);
    set_flash_message('Quote has been added.', 'success');
    redirect('quote');
}
else {
    echo "false";
}

//Some other stuff

出于某种原因,每次我提交表单方法时,$ this-> form_validation-> run()都会返回FALSE,因此代码最终会回显“false”。但报价已添加到我的数据库中,并且“已添加报价”。出现flash消息,这意味着条件的TRUE部分以某种方式被执行。

有没有人遇到过这个问题?我不知道会发生什么。

1 个答案:

答案 0 :(得分:0)

 public function index() {
        if ($this->input->post()) {
            $this->form_validation->set_rules('status', 'Status', 'trim');
            if ($this->form_validation->run()) {
                echo "true";

                $quote = array(
                    'status' => $this->input->post('status'),
                    'text' => $this->input->post('text'),
                    'author' => $this->input->post('author'),
                );

                $this->quote_model->add($quote);
                set_flash_message('Quote has been added.', 'success');
                redirect('quote');
            } else {
                echo "false";
            }
        } else {
            $this->load->view("quote", $data);
        }
    }