CakePHP3でログイン中のユーザ情報を取得する方法

技術系

CakePHPでログイン中のユーザ情報を取得する方法について調べました。
呼び出す場所によって呼び方が違うので注意が必要でした。

目次

コントローラの場合

コントローラの場合はAuthコンポーネントを使うと取得できます。
Auth::user()の引数に必要なカラムを入れると取得できます。

$this->Auth->user('name')

ビューの中で呼ぶ場合

ビューテンプレートやヘルパの中で取得できます。
配列で返ってくるので注意が必要です。

$login_user = $this->_View->get('login_user');
$login_user['name'];

セションを使う

こちらはセションを使って呼ぶ場合です。
ヘルパの場合にはHelperクラスに$this->requestが定義されているのでそちらを使います。

$username = $this->request->getSession()->read('Auth.User.name');
    /**
     * Request object
     *
     * @var \Cake\Http\ServerRequest
     */
    public $request;

参考

CakePHP3でログイン情報をViewに表示する方法 - Qiita
cake version 3.3.11 ViewにログインIDやアカウント名を表示したい時ってありますよね? セッションにログイン情報が入っているので、セッションから値を表示します。 SessionHelperは使用すべきではないとのことな...
CakePHP3でビューにユーザ情報表示 | teratail
CakePHP3でログイン認証したユーザの情報をビューで取得する方法はありますでしょうか?ビューで情報を扱う方法として、下記のサイトがあり、このように isAuthorizedメソッドで se

コメント

タイトルとURLをコピーしました