如何在视图的所有部分内传播$ data?

问题描述 投票:0回答:1

我需要在视图的所有部分(标题,顶部,侧边栏左侧,侧边栏右侧,页脚)内传播所有控制器$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

enter image description here

codeigniter frameworks views codeigniter-3
1个回答
2
投票

你应该从MY_Controller延伸试试这个。

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

}

希望这可以帮助

© www.soinside.com 2019 - 2024. All rights reserved.