qfly888 发表于 2010-12-28 14:40:43

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

刚接触CodeIgniter几天,觉得挺不错的,遇到了一些小问题,比如这个:
看了很多的关于包含 header 和 footer 的方法,但是觉得都不是太理想。
无意中看到了在英文官网的上的一段代码,就补充了一下,希望对大家有用。

控制器:

<?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.

qfly888 发表于 2010-12-28 14:45:26

补充一下: 可以把这个函数保存在文件中,然后在构造函数中导入。

loso 发表于 2010-12-28 17:19:04

过来看看, 本人用smarty 与ci 结合版本!!

上善若水 发表于 2011-1-2 14:26:49

header 和 footer 内容不需要读数据库,直接在视图里 $this->load->view

如果需要读数据库,就hmvc

你的方法没看懂。。。。。

yuki070 发表于 2011-9-2 15:24:04

贴上那个英文官网的url多好啊,你这做法有点费解

baiyuxiong 发表于 2011-9-4 10:35:31

上善若水 发表于 2011-1-2 14:26 static/image/common/back.gif
header 和 footer 内容不需要读数据库,直接在视图里 $this->load->view

如果需要读数据库,就hmvc


用HMVC的话有个效率上的问题。
如果header和footer需要读的数据一样的话,就需要读两次数据库。

上善若水 发表于 2011-9-5 14:02:19

baiyuxiong 发表于 2011-9-4 10:35 static/image/common/back.gif
用HMVC的话有个效率上的问题。
如果header和footer需要读的数据一样的话,就需要读两次数据库。 ...

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

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

我一般是设成永不过期,在后台添加数据时,直接更新 那两个缓存文件就成了

niki090 发表于 2011-12-26 22:29:45

思想还可以,我是菜鸟:lol

yinzhili 发表于 2012-3-13 21:37:39

也可以将header和footer的视图加载结果保存到字符串变量中如 $string = $this->load->view('myfile', '', true);,再将这个变量传递给主视图进行输出。

woood 发表于 2012-3-14 07:13:15

这个方法好在哪里呢?更复杂吗?
页: [1] 2
查看完整版本: 个人认为最好的包含 header 和 footer 的方法!