为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
倚天杖 2021-11-05 16:07:18
我是使用 CodeIgniter 的新手,但我对 mvc 结构和 CodeIgniter 本身有足够的了解,可以做一些简单的事情,例如在控制器中加载视图和自动加载库等但我遇到的问题是我有一个页眉和页脚视图每次加载视图文件时都希望自动加载。我做了一些搜索,很多建议都过时了,或者有时我根本不明白解决方案。我已经创建了我的页眉视图并在其中链接了我的 CSS,并且还创建了我的页脚视图。因此,假设我想加载如下所示的默认欢迎页面:public function index() {      $this->load->view('welcome_message');}我可以像这样手动加载它们:public function index() {      $this->load->view('common/header');      $this->load->view('welcome_message');      $this->load->view('common/footer');}但我想要的是像正常一样加载视图并自动加载我的页眉和页脚。我知道这需要使用带有某种模板函数的自定义库来完成,但我知道的不够多,无法从头开始。
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

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


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');

    }

}

放在core文件夹里。


在您的控制器中:


 public function index(){

   $content = "welcome_message";

   $data = array();

   $data['name'] = "Max";

   $data['country'] = "USA";

   $this->load->template($content,$data);

 }

调用视图中的数据:


<html>

  <?php echo $name.' - '.$country; ?>

</html>


查看完整回答
反对 回复 2021-11-05
?
心有法竹

TA贡献1866条经验 获得超5个赞

创建一个名为的核心控制器类MY_Controller并使每个控制器都扩展此控制器:


class MY_Controller extends CI_Controller

{


    public $data = array();


    public function __construct()

    {

        parent::__construct();

    }


    public function render($view)

    {

        $this->view('layouts/header', $this->data);

        $this->view($view, $this->data);

        $this->view('layouts/footer', $this->data);

    }


}

现在在您的控制器中:


class Welcome extends MY_Controller

{


    public function __construct()

    {

        parent::__construct();

    }


    public function index()

    {

        $this->data['title'] = 'Welcome Home';

        $this->render('welcome_view');

    }


}


查看完整回答
反对 回复 2021-11-05
  • 2 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信