PHP

Laravel5.4のコントローラコンストラクタでAuth::user()が取得できない

Laravel5.4 で認証を通したアクセスに対して、コントローラのコンストラクタでユーザモデルの値を取得しようと思ったら、なぜか Auth::user() の値が取得できなくて悩みました。

auth の middleware は通過して認証は OK になっていて、コントローラのコンストラクタ以外のメソッドでは問題なく取得できます。

そんな時、こんな情報に行き当たりました。

Laravel 5.3 コントローラのコンストラクタの重要な変更

まさに同様の考え方で、認証が必要なコントローラでは、各コントローラまたは継承している親のコントローラのコンストラクタで、認証情報を使った共通の処理を書きたくなるケースがあるのですよね。

結論としては、コンストラクタで以下のように書けば使えるようになりますが、あくまでもこの中だけでしか参照できないので注意です。