Мне нужен элемент отображения в зависимости от того, вошел ли пользователь в систему - в CakePHP 2.0
Это не работает
<?php if ($this->Auth->loggedIn() { echo $this->element('user'); } else { echo $this->element('guest'); } ?>
Спасибо
Следуйте шаблону MVC и вставьте логику в контроллер.
В контроллере:
$this->set( 'loggedIn', $this->Auth->loggedIn() );
По виду:
if( $loggedIn ) { echo $this->element( 'user' ); } else { echo $this->element( 'guest' ); }
Использовать помощника сеанса (необходим для аутентификации, как показано в «Учебнике журнала»):
if ($this->Session->read('Auth.User')) { echo 'logged'; } else { echo 'guest'; }
Попробуйте:
$element = (AuthComponent::loggedIn()) ? 'user' : 'guest'; echo $this->element($element);
Очень похоже на то, что вы уже пробовали, но затем статический вызов метода loggedIn.
!$this->Session->check('marketplace_showlink'
, если в приведенном выше коде произошла ошибка, кодированная в appcontroller
appcontroller
, например: Вызов функции-члена check () для необъектного объекта
будет генерироваться из-за пустой переменной сеанса