この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:atom
更新日時:2026-05-13 04:20:37

タイトル: ログインユーザー情報の取得

この記事の要点
  • Laravel でログインユーザー情報を取得する 3 通り
  • \Auth::user(): 一般的。\Auth::id() は ID だけを高速取得
  • auth()->user(): ヘルパ関数版(Blade でも使える)
  • $request->user(): コントローラ内でテストが書きやすい推奨書き方
  • 複数ガード時は \Auth::guard('admin')->user()

 

本稿はLaravelの認証情報(ログインユーザー情報)の取得について説明します。Auth ファサード/auth() ヘルパー/$request->user() の3通りがあり、用途で使い分けます。

基本:Auth::user() で取得

もっとも一般的な書き方です。

$user = \Auth::user();
$userId = $user->id;

未ログイン時は null が返るため、必要に応じてnullチェックを入れます。

IDだけ欲しいとき

カラム取得が不要な場合は id() を使う方が軽量です。

$userId = \Auth::id();

ログイン中かどうか判定したいとき

if (\Auth::check()) {
    // ログイン中の処理
}

auth() ヘルパー

関数ヘルパーを使うと記述が短くなります。Bladeテンプレートでも使えます。

$user = auth()->user();
$userId = auth()->id();
if (auth()->check()) { ... }

コントローラーで Request 経由で取得

コントローラーのアクションメソッド内では $request->user() が使えます。テスト時にユーザーを差し替えやすく、推奨される書き方の一つです。

public function show(Request $request)
{
    $user = $request->user();
    return view('profile', ['user' => $user]);
}

Bladeテンプレート内で参照

@auth
    ようこそ、{{ auth()->user()->name }} さん
@endauth

@guest
    ログインしてください
@endguest

ガード(複数認証)を指定したいとき

管理者用ガードを別に定義している場合などは、ガード名を指定して取得します。

$admin = \Auth::guard('admin')->user();
$user  = auth('web')->user();

取得方法の使い分け

書き方主な利用シーン
\Auth::user()どこからでも使える汎用
\Auth::id() / auth()->id()IDだけ欲しいとき
\Auth::check() / auth()->check()ログイン状態の判定
auth() ヘルパーBlade含めて短く書きたいとき
$request->user()コントローラー内、テストでユーザー差し替え可
\Auth::guard('name')->user()複数ガードを使い分けるとき

注意点

  • 未ログイン時はすべて null もしくは false を返す。$user->name のように直接プロパティを参照する前にチェック
  • APIトークン認証 (Sanctum/Passport) でも同じ書き方で取得可能(ガードが api になる)
  • セッションが切れたユーザーをアクションでブロックしたい場合は auth ミドルウェアを使う