Я устанавливаю переменную '$ loggedIn' в свой AppController для доступа во всем мире, чтобы идентифицировать зарегистрированных пользователей, но это только возвращает true, если мой url вызывает контроллер Users. например, если вы посещаете пользователя/индекс с URL-адресом, он показывает, что вы вошли в систему. Если я посещаю страницы/дома, он не показывает вход. Под нами код в appcontroller и моем представлении (default.ctp).CakePHP 2.5: установка глобальной переменной
Контроллеры/AppController.php
public function beforeFilter() {
$this->Auth->allow('index', 'view');
$this->set('loggedIn', $this->Session->read('Auth.User'));//fix here
}
Посмотреть/Макеты/default.ctp
<div id="header">
<div class="top-links">
<?php if($loggedIn) { //fix here
echo $this->Html->link('Register', array('controller'=>'users','action'=>'register'));
echo ' | ';
echo $this->Html->link('Login', array('controller'=>'users','action'=>'login'));
} else {
echo $this->Html->link('My Profile', array('controller'=>'users', 'action' => 'edit', $loggedIn['User']['id']));//fix here
echo $this->Html->link('Logout', array('controller'=>'users','action'=>'logout'));
}
?>
</div>
<a href="/cake"><img src="/img/logo.png" class="top-logo" /></a>
<?php
echo $this->element('top_menu');
?>
</div>