Глобальный массив данных в Codeigniter - PullRequest
1 голос
/ 08 марта 2012

У меня есть такой массив

  $meta = array(
       'meta_description' => 'lorem ipsum',
       'meta_keywords' => 'this, is, a, keyword'
  );

Если у меня есть это в моем методе контроллера, я могу передать его частичному, например, так: $this->template->set_partial('header', 'layouts/header', $meta) и оно проходит нормально.

Я храню метатеги в базе данных, поэтому в идеале я бы хотел поместить их в MY_Controller и заполнить массив на основе значений базы данных для метатегов этого поста.

Если я переместу его за пределы метода контроллера, я получу Message: Undefined variable: meta как ошибка.

Как я могу сделать это глобально доступным?

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Думаю, я понял это.

Я только что создал новую модель для обработки метаданных, затем вставляю в метод построения MY_Controller следующее:

 $meta = $this->meta_data_model->get_item_meta();

 $this->template->set_partial('header', 'layouts/header', $meta);

Кажется, это работает нормально, не уверен, что есть лучший способделать это.

0 голосов
/ 08 марта 2012

Все, к чему вы хотите получить доступ глобально, должно храниться в сеансе пользователя:

$this->load->library('session'); // Unless auto loaded
$this->session->set_userdata('meta', $meta);

Затем найдите его там, где вам нужно:

$meta = $this->session->userdata('meta');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...