[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
コメント 0