CakePHPのAuthコンポーネントによるログインは
認証に成功するとユーザ情報をセッションに保存します。
保存したセッションは、$this->Auth->user()で取得可能です。
すごく便利なんですけど
usersテーブルが更新されても、Cakeは自動的にセッションを更新しません。
その対策として、usersテーブルが更新された際に使える
セッションを最新にする関数を紹介します。(自動ではないです
// Auth.userのセッションを更新する function _update_session_auth_user() { $this->loadModel('User'); // Userモデルを読み込んでいるなら消してもOK $user = $this->User->find('first', array('conditions' => array('id' => $this->Auth->user('id')), 'recursive' => -1)); unset($user['User']['password']); // 念のためパスワードは除外。どうでもよければ消してもOK $this->Session->write('Auth', $user); }
これで『$this->Auth->user()』に関しては特に問題はなくなりました。