Я хочу собрать самую последнюю информацию пользователя из модели пользователя и сохранить ее в сеансе.Cakephp: Как читать данные пользователя в сеансе?
так я делаю это
// перед визуализацией функцию beforeRender() {
if($this->Session->check('Auth.User')) {
$this->User->recursive = -1;
$currentUser = $this->User->read(null, $this->Session->read('Auth.User.id'));
$this->set(compact('currentUser'));
}
}
Он отлично работает до утра в модели пользователя.
Когда я иду на страницы, это дает мне ошибку, потому что User-> read does not работает, так как эта модель не прилагается.
Какое лучшее решение для?
- Я хочу получить самую свежую информацию пользователя Loggedin на каждой странице сайта.
- Последнее, а не Auth.User из сеанса, потому что - когда я редактирую контент профиля, например имя или фотографию. он по-прежнему ссылается на старые данные, которые были сохранены, когда пользователь вошел в систему.
- Он должен отображаться на каждой странице, как в StackOverflow Информация о пользователе в верхней
Что является лучшим способом сделать это?
прохладный. я сделал все, кроме $ uses. работает сейчас. Благодарю. это правильный способ сделать это? –
Да, как говорится в документации: «Это идеальное место для создания кода, который является общим для всех ваших контроллеров». Но вы можете попробовать 'beforeFileter' вместо' beforeRender'. См. Документ для этого: http://book.cakephp.org/view/977/Controller-Methods#Callbacks-984 – Adam
Также в файле beforeFilter вы можете загрузить все свои настройки безопасности, и во всех ваших контроллерах у вас будет $ this- > Auth-> user() –