Php 如何将$data array type变量发送到所有控制器,以便它在所有视图上显示?

Php 如何将$data array type变量发送到所有控制器,以便它在所有视图上显示?,php,codeigniter,codeigniter-3,codeigniter-2,Php,Codeigniter,Codeigniter 3,Codeigniter 2,我有一个问题,我正在创建动态菜单,因此我必须发送从中获取的$data['coursemenu']数组类型变量 $data['coursemenu']=$this->CourseModel->fetchParentCourses(); 然后将这些数据发送到所有控制器,这样控制器的所有函数都会使用这些数据,然后它会发送到视图,这对于我以这种方式包含在所有函数中的头文件来说是通用的 $this->load->view('common/header', $data);

我有一个问题,我正在创建动态菜单,因此我必须发送从中获取的
$data['coursemenu']
数组类型变量

$data['coursemenu']=$this->CourseModel->fetchParentCourses();
然后将这些数据发送到所有控制器,这样控制器的所有函数都会使用这些数据,然后它会发送到视图,这对于我以这种方式包含在所有函数中的头文件来说是通用的

    $this->load->view('common/header', $data);
    $this->load->view('mainpages/'.$page, $data);
    $this->load->view('common/footer', $data);

首先,在
application/core
目录中创建一个新文件
MY\u Controller
扩展
CI\u Controller
只需在其中创建一个函数
公共函数\uu construct()
,并在其中处理数据。对于要在所有控制器中使用的结果,请使用类似于
$this->User的名称

下面是我的代码示例 MY_Controller.php

class MY_Controller extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('Options_model');
        $this->load->model('User_model');
        if (user_logged_in()) {
            $this->User = user_logged_in();
        }
        foreach ($this->Options_model->get_global_settings() as $result) {
            $this->global_data[$result->option_key] = $result->option_value;
        }
    }
}
<title><?php echo isset($page_title) ? $page_title . $this->global_data['site_name'] : $this->global_data['dashboard_title'] . ' &#8211; ' . $this->global_data['site_name']; ?></title>
就我的观点而言,我只是使用它 Header\u view.php

class MY_Controller extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('Options_model');
        $this->load->model('User_model');
        if (user_logged_in()) {
            $this->User = user_logged_in();
        }
        foreach ($this->Options_model->get_global_settings() as $result) {
            $this->global_data[$result->option_key] = $result->option_value;
        }
    }
}
<title><?php echo isset($page_title) ? $page_title . $this->global_data['site_name'] : $this->global_data['dashboard_title'] . ' &#8211; ' . $this->global_data['site_name']; ?></title>

还是这个

<a class="navbar-brand" href="#">Hi <?php echo $this->User['first_name']; ?>,Welcome to your dashboard</a>


您应该从删除任何不相关的标签开始。您使用的是CI 2还是CI 3?您的问题中可能存在添加模型代码的重复。感谢您的答复,我已经检查了这是否有其他方式发送数据。我忘记的一件重要事情是在您的控制器中。您应该从
MY\u Controller
扩展它们,而不是
CI\u Controller
谢谢您的回复。