Cakephp 2 - проверить, если пользователь вошел в представление - PullRequest
4 голосов
/ 20 февраля 2012

Мне нужен элемент отображения в зависимости от того, вошел ли пользователь в систему - в CakePHP 2.0

Это не работает

<?php
  if ($this->Auth->loggedIn() 
    { 
    echo $this->element('user');
    }

  else 
    {
    echo $this->element('guest');
    } 
?>

Спасибо

Ответы [ 4 ]

14 голосов
/ 20 февраля 2012

Следуйте шаблону MVC и вставьте логику в контроллер.

В контроллере:

$this->set( 'loggedIn', $this->Auth->loggedIn() );

По виду:

if( $loggedIn ) { 
    echo $this->element( 'user' );
}
else {
    echo $this->element( 'guest' );
} 
4 голосов
/ 05 апреля 2012

Использовать помощника сеанса (необходим для аутентификации, как показано в «Учебнике журнала»):

if ($this->Session->read('Auth.User')) {
    echo 'logged';
} else {
    echo 'guest';
}
2 голосов
/ 20 февраля 2012

Попробуйте:

$element = (AuthComponent::loggedIn()) ? 'user' : 'guest';
echo $this->element($element);

Очень похоже на то, что вы уже пробовали, но затем статический вызов метода loggedIn.

1 голос
/ 13 сентября 2013
!$this->Session->check('marketplace_showlink'

, если в приведенном выше коде произошла ошибка, кодированная в appcontroller

, например:
Вызов функции-члена check () для необъектного объекта

будет генерироваться из-за пустой переменной сеанса

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