如何将$ data数组类型变量发送给所有控制器,使其在所有视图上显示?

时间:2019-01-10 06:42:24

标签: php codeigniter codeigniter-3 codeigniter-2

我在制作动态菜单时遇到问题,因此我必须发送要从

获取的$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);

1 个答案:

答案 0 :(得分:1)

首先在ng-init="selected='Jewellery'"目录中创建一个新文件MY_Controller扩展CI_Controller 在其中创建一个函数application/core并在那里处理数据。对于要在所有控制器中使用的结果,请使用诸如public function __construct()

之类的名称

这是我的代码,例如 MY_Controller.php

$this->User

我认为我只是使用它 Header_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>