Как только пользователь вошел в систему, он может использовать кнопку профиля, которая должна перенаправить его в свой профиль. Однако я не могу получить default.ctp для доступа к текущему пользователю. Я думаю, что это самое близкое, что я получил:
<?php if($loggedIn) : ?>
<li><?= $this->Html->link('Search', ['controller' => 'users', 'action' => 'search']); ?></li>
<li><?= $this->Html->link('Profile', ['controller' => 'users', 'action' => 'profile', $this->request->getSession()->read('Auth.User.Id')]); ?></li>
<li><?= $this->Html->link('Settings', ['controller' => 'users', 'action' => 'settings']); ?></li>
<li><?= $this->Html->link('Logout', ['controller' => 'users', 'action' => 'logout']); ?></li>
<?php else : ?>
<li><?= $this->Html->link('Register', ['controller' => 'users', 'action' => 'register']); ?></li>
<li><?= $this->Html->link('Login', ['controller' => 'users', 'action' => 'login']); ?></li>
<?php endif; ?>
В view.ctp от UsersController user_id доступен как $ user-> user_id, потому что он объявлен так:
$user = $this->Users->get($id, [
'contain' => ['Profiles']
]);
$this->set('user', $user);
Я пытался использовать подобный код в AppController с beforeRender и beforeFilter, но, похоже, ничего не работает. Я чувствую, что я очень близок и, вероятно, просто использовал неправильную комбинацию вещей. Довольно плохо знаком с CakePHP (3.8), поэтому любая помощь / указатели будут с благодарностью!