2015-01-21 66 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'); 
    } 
} 
相关问题