Codeigniter 如何在视图的所有部分中传播$数据?

Codeigniter 如何在视图的所有部分中传播$数据?,codeigniter,frameworks,views,codeigniter-3,Codeigniter,Frameworks,Views,Codeigniter 3,我需要在视图的所有部分(页眉、顶部、左侧边栏、右侧边栏、页脚)内传播所有控制器$data,由于我不知道执行此任务的正确方法,我将$data发送到构建此视图的所有部分 class MY_Loader extends CI_Loader { public function loader_page($views, $data = null){ $this->view("incs/header", $data); $this-&

我需要在视图的所有部分(页眉、顶部、左侧边栏、右侧边栏、页脚)内传播所有控制器
$data
,由于我不知道执行此任务的正确方法,我将
$data
发送到构建此视图的所有部分

class MY_Loader extends CI_Loader {

    public function loader_page($views, $data = null){

        $this->view("incs/header",              $data);
        $this->view("incs/top",                 $data);
        $this->view("incs/sidebar-left",        $data);
        $this->view("incs/system_messages",     $data);
        $this->view($views,                     $data);
        $this->view("incs/sidebar-right",       $data);
        $this->view("incs/footer",              $data);
    }
}
是否有人知道在不发送构建视图的所有部分中的
$data
的情况下执行此任务的正确方法


您应该从
我的\u控制器
扩展,试试这个

application/core/MY_Controller.php中

class MY_Controller extends CI_Controller{

    public function loader_page($views, $data = []){

       $this->load->view("incs/header",              $data);
       $this->load->view("incs/top",                 $data);
       $this->load->view("incs/sidebar-left",        $data);
       $this->load->view("incs/system_messages",     $data);
       $this->load->view($views,                     $data);
       $this->load->view("incs/sidebar-right",       $data);
       $this->load->view("incs/footer",              $data);

    }

}
在控制器中

class Inicio extends MY_Controller{

   public function __construct(){
       parent::__construct();
   }

   public function index() {
       $data['title'] = 'Your title';
       $this->loader_page('forms', $data);
   }

}

希望这有帮助

您应该从
我的\u控制器扩展过来
试试这个

application/core/MY_Controller.php中

class MY_Controller extends CI_Controller{

    public function loader_page($views, $data = []){

       $this->load->view("incs/header",              $data);
       $this->load->view("incs/top",                 $data);
       $this->load->view("incs/sidebar-left",        $data);
       $this->load->view("incs/system_messages",     $data);
       $this->load->view($views,                     $data);
       $this->load->view("incs/sidebar-right",       $data);
       $this->load->view("incs/footer",              $data);

    }

}
在控制器中

class Inicio extends MY_Controller{

   public function __construct(){
       parent::__construct();
   }

   public function index() {
       $data['title'] = 'Your title';
       $this->loader_page('forms', $data);
   }

}

希望这对你有所帮助

你不喜欢目前的做事方式吗?它不起作用吗?为什么要重写/添加加载器函数?只需制作一个模板模型或做些什么就可以了。无需扩展loader类。我能看到的唯一一种方法是将
$data
添加到每个视图,而不必这样做,这将涉及到对核心的修改-它不会改进任何东西,我也不认为您的操作方式有任何错误(除了可能将其移动到模型).你不喜欢你目前的做事方式吗?它不起作用吗?为什么要重写/添加加载器函数?只需制作一个模板模型或做些什么就可以了。不需要扩展loader类。我唯一能看到的另一种方法是在不必这样做的情况下将
$data
添加到每个视图中,这将涉及到对核心的修改——它不会改进任何东西,而且我看不出您的操作方式有任何错误(除了可能将其移动到模型)。