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'] . ' – ' . $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'] . ' – ' . $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
谢谢您的回复。