CakePHP 4 のモデル内でログインユーザーを取得する方法
今日は CakePHP 4 で Authentication プラグインを使用している場合に Table や Entity などのモデル内でログインユーザーを取得する方法をご紹介します。
前回投稿した「CakePHP 4 のモデル内でのリクエスト取得方法」の応用で下記のように取得できます。
src/Model/Table/SampleTable.php
<?php
use Cake\Routing\Router; // ← 追加
// メソッドの中で
$loginUser = Router::getRequest()->getAttribute('identity');
エンティティ内でも同様に取得可能です。
Authentication プラグインの公式ドキュメントでモデル内での取得方法が見つけられず。
下記リンクはコンポーネントに関する資料ですが、request から取得する方法が記載されていたのでそちらで対応してみました。
- Accessing the logged in user (Authentication Component - 2.x)
- https://book.cakephp.org/authentication/2/en/authentication-component.html#accessing-the-logged-in-user