用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6102|回复: 10
收起左侧

[HELP] header这种公用的视图中读取数据库问题,怎么简化代码?

[复制链接]
发表于 2009-9-16 23:06:43 | 显示全部楼层 |阅读模式
我的项目中有一个header.php视图,是所有控制器都要使用到的,因为要从数据库中读取当前的上课班级,所以就写了一个model

<?php
class Configs extends Model{
    function Configs()
    {        
        parent::Model();
    }
   
    function getActiveClass(){
     $this->db->select('active_class');
     $q=$this->db->get('configs')->result_array();
        return $q[0]['active_class'];
    }
}

然后在控制器中写

//取当前上课班级,渲染头部视图
        $this->load->model('Configs','',True);
        $active_class=$this->Configs->getActiveClass();        
        $this->load->view('common/header',array('title'=>'网站首页',
                  'active_class'=>$active_class));

问题来了,是不是每个调用了header.php视图的控制器都要写上面这段代码呢,如何实现代码复用呢?

QQ截图未命名2.jpg

QQ截图未命名.jpg
发表于 2009-9-16 23:16:31 | 显示全部楼层
每次更新课程时,生成静态页面,然后根据需要,在页面里面  <!-- #include virtual="/file/ grade1.html"   -->
发表于 2009-9-16 23:30:03 | 显示全部楼层
把重复的代码写到一个plugin中,然后load进来,如何?
或者写成一个php,include进来?
 楼主| 发表于 2009-9-17 00:02:32 | 显示全部楼层
把重复的代码写到一个plugin中,然后load进来,如何?
或者写成一个php,include进来?

tmnh168 发表于 2009-9-16 23:30


好主意,可以让2行代码变成1行,呵呵
发表于 2009-9-17 00:28:16 | 显示全部楼层
你的类名称真够。。。
发表于 2009-9-17 00:37:03 | 显示全部楼层
 楼主| 发表于 2009-9-17 11:15:57 | 显示全部楼层
汗,实现起来好麻烦啊
发表于 2009-9-17 12:27:48 | 显示全部楼层
我现在的方法是写成一个helper..然后自动载入就可以直接在那些公用页面使用了.
但是没有比较过这样的性能影响大不大.也盼各位了解的可以讲一下.
发表于 2009-9-17 14:03:15 | 显示全部楼层
汗,实现起来好麻烦啊
webyjh 发表于 2009-9-17 11:15

直接用我做的 HMVC 类库就可以了呀。
发表于 2009-9-17 18:31:33 | 显示全部楼层
貌似我说的哪种方法最简单,哈哈

本版积分规则