在Codeigniter中显示多个视图的最佳做法是什么?

use*_*052 2 model-view-controller codeigniter view

我正在尝试确定从控制器中的相同方法调用多个视图的最佳实践.

在控制器中是否最好进行一次视图调用,然后让该视图调用所需的所有视图,或者在控制器中按顺序调用所需的所有视图?

例:

function index(){
   //set all data variables
   //then send them to the view
   $this->load->view($index_view, $data);
}
Run Code Online (Sandbox Code Playgroud)

要么

function index(){
  //set variables
  //then call each view
  $this->load->view($header_view, $header_data);
  $this->load->view($body_view, $body_data);
  $this->load->view($footer_view, $footer_data);
Run Code Online (Sandbox Code Playgroud)

Codeigniter指南显示了两种方式,但似乎没有建议最佳实践...是否有一个?

小智 9

我不喜欢在视图中包含页眉/页脚的方式,我不喜欢每次在每个Controller函数中加载页脚和页眉.

为了解决这个问题,我使用自己的视图显示功能扩展了Controller类.

<?php
// in application/libraries/MY_Controller.php
class MY_Controller extends Controller {
    function _displayPage($page, $data = array()) {
        $this->view->load('header', $data);
        $this->view->load($page, $data);
        $this->view->load('footer', $data);
    }
}
?>

// in application/controllers/home.php
<?php
class Home extends MY_Controller {
    function index() {
        $this->_displayPage('home/index', array('title' => 'Home'));
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

不确定这是否是CodeIgniter"最佳实践",但这对我来说很有意义.