Как отправить переменную типа массива $ data на все контроллеры, чтобы она отображалась во всех представлениях? - PullRequest
0 голосов
/ 10 января 2019

У меня проблема с тем, что я создаю динамическое меню, поэтому мне нужно отправить $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 голосов
/ 10 января 2019

прежде всего создайте новый файл MY_Controller extends CI_Controller в каталоге application/core создайте в нем только функцию public function __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;
        }
    }
}

на мой взгляд, я просто использую его Header_view.php

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...