2015-01-21 83 views
0

在我的數據庫表中,我有'category_id'。我想要做的是爲不同的類別加載不同的視圖(例如貓,狗的圖片等)。對CodeIgniter視圖,控制器和模型的建議

我正在從與模型「for」循環的範疇,我想應該是這樣的

if($row['category'] == 'cat') $this->load->view('cat') 

// this is how I get the categories 

public function get_categories() { 
    $data = array(); 
    $q = $this->db->get('categories'); 
    foreach($q->result_array() as $row) { 
     $data[] = $row; 
    } 
     return $data; 
} 

但問題是,這不是一個好主意,在模型加載認爲,必須在控制器中。 我的問題是我應該做什麼,在模型中的邏輯和在控制器中加載的不同類別的視圖

我希望我對我的英語足夠清楚和抱歉。

預先感謝您

回答

3

你應該從控制器調用模型方法和數據返回到控制器。然後,在控制器動作,你可以去通過模型方法的結果,並加載所需的視圖

+0

我曾考慮過這個問題,但是我需要在控制器中寫入邏輯。我需要編寫foreach循環,如果在控制器中,並且我不認爲這是一個好主意,這是在控制器中 – user3104718 2015-01-21 09:18:55

+0

您可以在模型中創建額外的函數,可以獲取數組,並通過它並返回正確的視圖名稱。那麼你不需要控制器迴路 – 2015-01-21 09:31:48

+0

謝謝。它的工作 – user3104718 2015-01-26 18:17:20

0

創建模型中的這個功能說「category_model」

public function get_categories() { 
    $q = $this->db->get('categories')->result_array(); 
     return $q; 
} 

將此代碼放在您的控制器

public function index(){ 
    $data=$this->category_model->get_categories(); 
    foreach($data as $row){ 
    if($row['category'] == 'cat'){ 
     $this->load->view('cat'); 
    } 
}