функция-член check() для не-объекта

Я использую CakePHP 1.26. В файле .ctp у меня есть несколько подобных кодов:

$sess = $this->Session->check('user');
if($sess){
// do soemthing
}
else{
// do soemthing then
}

Но тогда я получил эту ошибку:

Неустранимая ошибка: вызов функции-члена check() для не-объекта в /home/vol12/mysite.com/htdocs/app/views/layouts/testing1.ctp в строке 10

Могу ли я использовать метод Check в файле .ctp, чтобы проверить, существует ли сеанс?


person user327712    schedule 02.07.2010    source источник
comment
Существует ли check() для сеанса в версии 1.26? Я знаю 1,3...   -  person Jason McCreary    schedule 02.07.2010


Ответы (2)


Конечно, есть компонент сеанса для использования в контроллерах, который упоминается как $this->Session. То, что вы ищете, я думаю, это помощник сеанса, доступный для представлений. Обозначается просто как $session, IIRC. Я хотел проверить это (прошло некоторое время с тех пор, как мне пришлось его использовать), но на данный момент не могу найти его в документах. Я думаю, вы хотите:

$sess = $session->check('user');
person Rob Wilkerson    schedule 02.07.2010
comment
согласен. Вызов помощника не требует $this. - person Young; 02.07.2010

Я могу сделать это в 1.2.5:

if ($session->read('Auth.User')){ ... }

см. руководство: http://book.cakephp.org/view/484/Session кратко, но ясно. Обратите внимание, что вы не можете писать в сеанс из представления.

person Leo    schedule 05.07.2010