Codeigniter - я должен получить доступ к данным сеанса в представлении? - PullRequest
3 голосов
/ 02 октября 2011

Должен ли я получить некоторые данные из переменной сеанса для моего заголовка из заголовка, который должен отображать несколько деталей для пользователя, вошедшего в систему в данный момент. Или в каждом контроллере загрузить пользовательские данные и затем отправить их в соответствующее представление?Похоже, что я должен сделать это с контроллеров, но наличие этого в заголовке требует меньше кода.

1 Ответ

4 голосов
/ 02 октября 2011

Должны ли вы?Ради удобства обслуживания и соблюдения шаблона MVC, я бы сказал, сделайте это в контроллере, я не думаю, что одна строка кода будет проблемой, вы можете получить все это так:

$data['userdata'] = $this->session->all_userdata(); // returns and associative array

Затем передайте это представлению и выведите его в представление с помощью $ userdata ['what'], который в любом случае равен тому же количеству кода, что и его заголовок.

Функциянаходится здесь


Редактировать - 03 ноября 2015

Начиная с версия 3.0 $this->session->all_userdata(); устарела,Вместо этого прямой доступ к объекту $_SESSION напрямую является предпочтительным методом, однако $this->session->userdata(); без параметров можно использовать с более старыми приложениями.

$data['userdata'] = $_SESSION; // returns and associative array

или

$data['userdata'] = $this->session->userdata();

Документация на userdata () :

Получает значение для определенного элемента $_SESSION или массив всех элементов «userdata», если не указан ключ.

ПРИМЕЧАНИЕ. Это устаревший метод, сохраняемый только для обратной совместимости со старыми приложениями.Вместо этого вы должны получить прямой доступ к $_SESSION.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...