【问题标题】:Advice for CodeIgniter views, controller and modelCodeIgniter 视图、控制器和模型的建议
【发布时间】:2015-01-21 09:04:37
【问题描述】:

在我的数据库表中,我有“category_id”。我要做的就是为不同的类别加载不同的视图(例如猫、狗等的图片)。

我正在使用“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;
}

但问题是在模型中加载视图不是一个好主意,它必须在控制器中。 我的问题是我应该做什么,模型中的逻辑以及要加载到控制器中的不同类别的视图

我希望我的英语足够清楚,对不起。

提前谢谢你

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    您应该从控制器调用模型方法并将数据返回给控制器。然后在控制器操作中,您可以查看模型方法的结果并加载所需的视图

    【讨论】:

    • 这个我有想过,但是接下来我需要在控制器中编写逻辑。我需要编写 foreach 循环和 if 在控制器中,我认为在控制器中不是一个好主意
    • 您可以在模型中创建额外的函数来获取数组,通过它并只返回视图名称。那么你不需要在控制器中循环
    【解决方案2】:

    在你的模型中创建这个函数说“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');
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 2013-08-21
      • 2012-09-19
      • 1970-01-01
      相关资源
      最近更新 更多