2012-10-22 244 views
4

我有一個簡單的形式添加到我的分貝與下面的驗證規則。 「form」在autoload.php中。笨VALIDATION_ERRORS()總是返回空

每當任何的驗證規則被打破的頁面沒有顯示錯誤輸出,當沒有被破壞的形式經過預期。

這裏是我的控制器功能

public function add() 
{ 

    $this->load->library('form_validation'); 
    $this->load->library('layout'); 
    // field name, error message, validation rules 
    $this->form_validation->set_rules('type', 'Type', 'required|xss_clean'); 
    $this->form_validation->set_rules('title_type', 'Title type', 'required|xss_clean'); 
    $this->form_validation->set_rules('first_name', 'First name', 'trim|required|min_length[1]|max_length[150]|xss_clean'); 
    $this->form_validation->set_rules('surname', 'Surname', 'trim|required|min_length[1]|max_length[150]|xss_clean'); 
    $this->form_validation->set_rules('job_title', 'Job title', 'trim|min_length[5]|max_length[300]required|xss_clean'); 
    $this->form_validation->set_rules('office_number', 'Office number', 'trim|min_length[2]|max_length[11]|xss_clean'); 
    $this->form_validation->set_rules('telephone', 'Telephone', 'trim|numeric|xss_clean'); 
    $this->form_validation->set_rules('email', 'Email', 'trim|valid_email|xss_clean'); 
    $this->form_validation->set_rules('website', 'Website', 'trim|prep_url|xss_clean'); 
    $this->form_validation->set_rules('background', 'Background', 'trim|xss_clean'); 


    $data = array(
     'title' => 'Add staff member' 
    ); 

    if ($this->form_validation->run() == FALSE) { //Was errors 

     $this->session->set_flashdata('message','You missed some details, please try again.'); 

     $this->layout->load('default', 'add_person', $data); 
    } else { 
     $this->people_model->add_person(); 
     $this->layout->load('default', 'added_person', $data); 
    } 


} //add 

在我表單視圖我有

<?php echo validation_errors('<p class="msg msg-error">') ?> 

任何人都可以看到我做錯了,我用盡了一切我能想到的。

的VALIDATION_ERRORS()的後續代碼var_dump給

string '' (length=0) 

編輯:奇怪的是,如果我周圍的交換這兩行,我得到:

$this->load->library('form_validation'); 
    $this->load->library('layout'); //lib code http://pastebin.com/K1rBV512 

Message: Undefined property: People::$form_validation 

Filename: controllers/people.php 

Line Number: 27 
+0

是你使用HMVC擴展? –

+0

@Damien不,我唯一使用的第三方是佈局庫。這是︰http://pastebin.com/K1rBV512 – RichardM

回答

0

的錯誤不會顯得什麼與會話做,但我沒有看到你加載會話庫。

+0

數據庫和會話自動加載 – RichardM

1

您需要的$data數組傳遞給你的模型。所有輸入需要從VIEW頁面獲得POST。你沒有顯示任何具體的錯誤,所以很難診斷你的問題。

作出這樣肯定你POST所有的輸入您的MODEL

`'first_name' => $this->input->post('first_name'),` 


在你view

<?php echo validation_errors('<p class="msg msg-error">') ?> 

在你view它改成這樣:

<p class="msg msg-error"><?php echo validation_errors(); ?></p> 
+0

這就像在我的模型,數據進入分貝罰款。 – RichardM

0

我相信問題在你看來,不在控制器中。 問題似乎是你的$ _POST是空的,沒有什麼可以驗證。

這似乎沒有答案,希望這將幫助其他人。

如果發生這種情況,然後嘗試在$ _ POST一個的var_dump。如果爲空,則請確保您有

然後裏面請確保您有您輸入的「名稱」屬性上,而不是「ID」

希望這有助於任何人