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

个人认为最好的包含 header 和 footer 的方法!

  [复制链接]
发表于 2010-12-28 14:40:43 | 显示全部楼层 |阅读模式
刚接触CodeIgniter几天,觉得挺不错的,遇到了一些小问题,比如这个:
看了很多的关于包含 header 和 footer 的方法,但是觉得都不是太理想。
无意中看到了在英文官网的上的一段代码,就补充了一下,希望对大家有用。

控制器:
PHP复制代码
 
<?php
class Picture extends Controller {
    function __construct()
    {
        parent::Controller();
    }
   
    function view2($view, $data)
    {
        $header_data['title'] = 'CodeIgniter Home Page';
        $footer_data['copyright'] = '版权: qfly888';
        //将数组合并
        $data = array_merge($header_data, $data, $footer_data);
       
        $this->load->view('header_view', $data);
        $this->load->view($view);
        $this->load->view('footer_view');
    }
   
    function index()
    {
        $data['content'] = 'Content';
        $this->view2('picture_view', $data);
    }
}
?>
 
复制代码


在视图中建header_view.php 和 footer_view.php.
 楼主| 发表于 2010-12-28 14:45:26 | 显示全部楼层
补充一下: 可以把这个函数保存在文件中,然后在构造函数中导入。
发表于 2010-12-28 17:19:04 | 显示全部楼层
过来看看, 本人用smarty 与ci 结合版本!!
发表于 2011-1-2 14:26:49 | 显示全部楼层
header 和 footer 内容不需要读数据库,直接在视图里 $this->load->view

如果需要读数据库,就hmvc

你的方法没看懂。。。。。
发表于 2011-9-2 15:24:04 | 显示全部楼层
贴上那个英文官网的url多好啊,你这做法有点费解
发表于 2011-9-4 10:35:31 | 显示全部楼层
上善若水 发表于 2011-1-2 14:26
header 和 footer 内容不需要读数据库,直接在视图里 $this->load->view

如果需要读数据库,就hmvc

用HMVC的话有个效率上的问题。
如果header和footer需要读的数据一样的话,就需要读两次数据库。
发表于 2011-9-5 14:02:19 | 显示全部楼层
baiyuxiong 发表于 2011-9-4 10:35
用HMVC的话有个效率上的问题。
如果header和footer需要读的数据一样的话,就需要读两次数据库。 ...

不会的 header footer 的数据一般是不变的。可以缓存起来。

下次读的时候不需要在读数据库了。根据现实需要设计缓存过期时间就成了

我一般是设成永不过期,在后台添加数据时,直接更新 那两个缓存文件就成了
发表于 2011-12-26 22:29:45 | 显示全部楼层
思想还可以,我是菜鸟
发表于 2012-3-13 21:37:39 | 显示全部楼层
也可以将header和footer的视图加载结果保存到字符串变量中如 $string = $this->load->view('myfile', '', true);,再将这个变量传递给主视图进行输出。
发表于 2012-3-14 07:13:15 | 显示全部楼层
这个方法好在哪里呢?更复杂吗?

本版积分规则