ミドルウェアはいつ実行されますか。
コントローラに到達する前です。$next($request) の前に書けば前処理、後に書けば後処理になります。登録順に入れ子で積まれますが、認証など標準のものは優先順位で並べ替えられます。
面接官が見ているのはリクエストの流れを理解しているか。
よくある答えと、面談でどう見られるか
- コントローラに到達する前(および必要ならレスポンス生成後)
その通りです。認証やログのような横断的な処理をここに置きます。 - ビューがレンダリングされたあとだけ
後処理も書けますが、主な役割は到達前の処理です。 - アプリケーションの起動時に一度だけ
それは ServiceProvider の boot に近い話です。ミドルウェアはリクエストごとです。 - DB にアクセスする直前
DB とは無関係で、HTTP リクエストの層で動きます。
模範解答
コントローラに到達する前に実行されます。$next($request) を呼ぶ前に書けば前処理、呼んだ後に書けば後処理になります。
認証、権限チェック、ログ記録、言語切り替えなど、複数のコントローラに共通する処理をここに寄せます。複数のミドルウェアは登録順に入れ子で積まれるので、順序が意味を持ちます。ただし認証や認可など標準のミドルウェアは、決められた優先順位に従って並べ替えられます。
対象: Laravel 12.x(13.x の変更点も確認) 照合した一次資料: 公式ドキュメント 照合: 2026-08-11 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。