[CakePHP2] モデルからログインしているユーザー情報を取得する


Modelからログインしているユーザー情報を取得したい場合があります。
もちろん $this->Auth->user() では取得できないので一手間かけてあげます。

 

環境

CakePHP 2.2.2

 

モデルからログインしているユーザー情報を取得する

AppModel.phpに以下のメソッドを追加します。

やってることはAuthComponent内で行なっていることとそんなに大差はなく、
キーの指定までは必要ないだろうと省いています。

protected function _getCurrentUser() {
    App::uses('CakeSession', 'Model/Datasource');
    $Session = new CakeSession();

    $user = $Session->read('Auth.User');
    return $user;
}

 

これで $this->_getCurrentUser() を呼び出してあげればユーザー情報が取得できます。

他の方法としては、AuthComponentのインスタンスを生成してuserメソッドをそのまま呼び出してもいいと思います。

※2013/3/28 サンプルコード追記

    protected function _getCurrentUser() {
        App::uses('AuthComponent',  'Controller/Component');
        return AuthComponent::user();
    }

参考というかパク(ry
CakePHP: get user info in models

  1. コメント 0

  1. トラックバック 0

return top