Codeigniter可重复使用的部分

时间:2011-02-27 01:05:32

标签: codeigniter code-reuse codeigniter-2

我有一个数据库表,我希望在我的网站的各个页面上显示。理想情况下,我希望只有一个包含或某些东西将会关闭并获取数据,并返回html表。每当我需要使用它时,html和数据都是相同的。

我想知道这样做的最好方法

由于

修改

如果这有帮助,类似于Django“包含”自定义标签...对于任何django开发人员阅读

4 个答案:

答案 0 :(得分:1)

Me

答案 1 :(得分:0)

您应该使用模型中的函数来获取所需的数据。您的控制器调用模型函数并将返回的信息发送到视图。您不需要使用Codeigniter的传统PHP包含。我建议审核user guide。它非常好,并会告诉您使用CI开发所需的所有基本知识。但是为了帮助您入门,您可以使用Models, Views, and Controllers。您的URL将告诉CI该控制器内的控制器和功能是什么运行。如果你的网址是

http://www.example.com/my_controller/load_my_view

然后CI将执行my_controller控制器中load_my_view函数内部的操作。函数load_my_view依次实例化模型“my_table”并运行数据库查询,返回控制器发送给视图的信息。一个基本的例子如下:

你的模特

class my_table extends CI_Model{
    function my_data(){
        $this->db->select('column_1,column_2,column_3');
        $this->db->from('my_table');
        $query = $this->db->get();
        if($query->num_rows()>0){
          $result = $query->result();
        }
        else{
          $result = false;
        }
        return $result;
    }


}

您的控制器

class my_controller extends CI_Controller{
    function load_my_view(){  
        $this->load->model('my_table');
        $data['my_results'] = $this->my_table->my_data();
        $this->load->view('my_view');
    }

}

您的观点

<ul id = "my_db_results">

    <?php foreach($my_results as $result):?>
         <li><?php echo $result->column_1." : ".$result->column_2." ( ".$result->column_3." )";?></li>
    <?php endforeach;?>
</ul>

答案 2 :(得分:0)

这似乎是一个使用缓存的好机会:http://codeigniter.com/user_guide/libraries/caching.html

答案 3 :(得分:0)

好的,所以这里有一件事对我有用,但绝对不完美。

我创建了一个视图,其中调用模型获取数据然后将数据放入表中。这样,我只需要包含此视图就可以将表放在任何位置。

我理解这完全破坏了拥有MVC框架的重点,但希望它能够展示我想要做的......并且它有效