如何自动加载页眉和页脚视图?

Mik*_*eri 1 php codeigniter codeigniter-2 codeigniter-3

我是使用 CodeIgniter 的新手,但我对 mvc 结构和 CodeIgniter 本身有足够的了解,可以做一些简单的事情,比如在控制器中加载视图和自动加载库等但我遇到的问题是我有一个页眉和页脚视图每次加载视图文件时都希望自动加载。

我做了一些搜索,很多建议都过时了,或者有时我根本不明白解决方案。我已经创建了我的页眉视图并在其中链接了我的 CSS,并且还创建了我的页脚视图。因此,假设我想加载如下所示的默认欢迎页面:

public function index() {
      $this->load->view('welcome_message');
}
Run Code Online (Sandbox Code Playgroud)

我可以像这样手动加载它们:

public function index() {
      $this->load->view('common/header');
      $this->load->view('welcome_message');
      $this->load->view('common/footer');
}
Run Code Online (Sandbox Code Playgroud)

但我想要的是像正常一样加载视图并自动加载我的页眉和页脚。我知道这需要使用带有某种模板功能的自定义库来完成,但我知道的不够多,无法从头开始。

Tia*_*ara 5

我这样做了,它对我有用。

MY_Loader.php

class MY_Loader extends CI_Loader{
    public function template($content,$var=array()){
        $this->view('common/header');
        $this->view($content,$var);
        $this->view('common/footer');
    }
}
Run Code Online (Sandbox Code Playgroud)

放在core文件夹里。

在您的控制器中:

 public function index(){
   $content = "welcome_message";
   $data = array();
   $data['name'] = "Max";
   $data['country'] = "USA";
   $this->load->template($content,$data);
 }
Run Code Online (Sandbox Code Playgroud)

调用视图中的数据:

<html>
  <?php echo $name.' - '.$country; ?>
</html>
Run Code Online (Sandbox Code Playgroud)