CakePHP: доступ к данным сеанса из контроллера - PullRequest
0 голосов
/ 08 октября 2010

У меня есть действие редактирования в контроллере пользователей.Я хочу перенаправить кого-либо на другое действие, если его Auth.User.id не равен идентификатору пользователя, которого он пытается отредактировать.

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

if($session->read('Auth.User.id') != $id){

, но это не работает в моем контроллере.Получение:

Undefined variable: session

Как получить доступ к данным сеанса в контроллере?Кроме того, если у кого-то есть лучший способ достичь того, что я хочу сделать, не стесняйтесь добавлять!

Спасибо,

Джонси

Ответы [ 2 ]

9 голосов
/ 08 октября 2010

Сначала вы должны добавить Session в качестве компонента вашего контроллера:

var $components= array('Session');

Затем вы можете получить к нему доступ через ваши методы через $this->Session

4 голосов
/ 08 октября 2010

Вы можете читать данные сеанса в контроллере с помощью $this->Session->read('Auth.User.id'); Компонент сеанса CakePHP, если я правильно помню, автоматически загружается во все контроллеры, если вы не определили компоненты по умолчанию в другом месте. Если $this->Session не определено, включите его в массив $components в вашем контроллере, например var $components = array('Session');

Важно отметить, что помощники не совпадают с компонентами. Вообще говоря, Компоненты - это расширенная функциональность вашего Контроллера. Принимая во внимание, что помощники - расширенная функциональность для вашего представления.

Для полного обзора всех возможных методов, CakePHP Cookbook будет неоценим для вас! http://book.cakephp.org/view/1310/Sessions

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