2013-06-01 24 views
-2

我忙於第一個codeigniter「practice」項目。我使用flexi_auth作爲驗證庫,並且非常喜歡他們在模型中實現表單驗證的方式,而不是在控制器中,因此堅持使用MVC(胖模型)主體。Codeigniter,Fat模型和皮包骨頭控制器

我試圖建立另一個我的形式具有相同的邏輯,但對於我的生活我似乎無法得到由模型驗證錯誤通過控制器設置到視圖的錯誤信息。請注意我正在使用佈局助手,因此需要查看異常的電話。

任何幫助將不勝感激。這裏是我的代碼:

控制器:

//Start Information Desk Query() 
public function information() 
{ 
    if ($this->input->post(‘informationForm_submit’)) 
    { 
    $this->load->model(‘contact_model’); 
    $this->contact_model->information_post(); 
    // information_post validation failed 
    } 

    $this->data[‘title’] = ‘Information Desk’; 
    $this->layout->show(‘contact/information_view’, $this->data); 

} 
//End Information Desk Query() 

型號:

//Start Information Request() 
public function information_post() 
{ 

    $validation_rules = array(
    array(‘field’ => ‘informationEmail’, ‘label’ => ‘Email’, ‘rules’ => ‘required|valid_email’), 
    array(‘field’ => ‘informationQuery’, ‘label’ => ‘Message’, ‘rules’ => ‘required|max_length[500]’) 
); 

    $this->form_validation->set_rules($validation_rules); 

    if ($this->form_validation->run()) 
    { 
    return TRUE; 
    } 
    else 
    { 
    $this->data[‘message’] = validation_errors(’<li class=「error_msg」>’, ‘</li>’); 
    return FALSE; 
    } 

} 
//End Information Request() 

查看:

<?php 

     if (! empty($message)) 
     { 
     echo ‘<div class = 「error_message」> 
     <div class =「error_header」>Please correct the following</div> 
     <div class = 「error_image my-icons-Actions-window-close-icon」></div> 
     <ul class = 「error_text」>’.$message.’</ul></div>’; 
     } 
    ?> 

* *請注意,表單驗證功能在此碼。如果我把以下內容: echo $ this-> data ['message'];

....在模型中,然後錯誤顯示,但顯然不是我的視圖文件的一部分,但在它之前。 PS。請容易,如果這是一個愚蠢的問題,但我是codeigniter新手,實際上是MVC。

+2

我不會,如果你的代碼有「模型」(如以複數形式),您已經銷燬了該模型。 MVC由兩個主要層組成:模型層和表示層。模型不是類或對象,而是一個包含幾組類/實例的圖層。 –

回答

1

您設置模型的財產,而不是得到它的控制器

你應該做這樣的事情在你的控制器:

if ($this->input->post('informationForm_submit')) 
{ 
    $this->load->model('contact_model'); 
    $this->contact_model->information_post(); 
    // required addition 
    $this->data['message'] = $this->contact_model->data['message']; 
} 
+0

謝謝Ochi。這有幫助。好東西。 – Herm

相關問題