カテゴリ: Laravel 更新日: 2026/08/17

Laravelでセッションflashメッセージを表示する方法|初心者向け解説

Laravelでセッション情報をビューで表示する方法(flashメッセージ)
Laravelでセッション情報をビューで表示する方法(flashメッセージ)

先生と生徒の会話形式で理解しよう

生徒

「Laravelでフォーム送信後に成功メッセージを表示したいんですが、どうすればいいですか?」

先生

「それにはセッションに情報を一時的に保存するflashメッセージという仕組みを使います。簡単ですよ!」

生徒

「何をどう書けばいいんですか?」

先生

「では手順を一つずつ見ていきましょう!」

1. flashメッセージとは?

1. flashメッセージとは?
1. flashメッセージとは?

flashメッセージは、セッションに「一度だけ」保存される情報です。たとえば、フォーム送信後に「送信完了しました!」というメッセージを一度だけ表示し、その後は消えます。

「セッション」は、複数のページをまたいで一時的に情報を保存しておく仕組みです。

2. コントローラでflashメッセージを設定する方法

2. コントローラでflashメッセージを設定する方法
2. コントローラでflashメッセージを設定する方法

コントローラでデータ処理後、次のように書くとflashメッセージが設定できます:


return redirect()
  ->back()
  ->with('success', '登録が完了しました!');

このwith('success', ...)がflashメッセージをセッションに保存する部分です。

3. ビューでflashメッセージを表示する方法

3. ビューでflashメッセージを表示する方法
3. ビューでflashメッセージを表示する方法

次に、Bladeテンプレートにメッセージ表示を追加します:


@if (session('success'))
  <div class="alert alert-success">
    {{ session('success') }}
  </div>
@endif

@ifでセッションにsuccessがあるかチェックし、あればdivでメッセージを表示します。

4. エラーメッセージを表示する例

4. エラーメッセージを表示する例
4. エラーメッセージを表示する例

同様にエラー用のflashメッセージも使えます:


return redirect()
  ->back()
  ->with('error', 'エラーが発生しました');

Bladeでは次のように書きます:


@if (session('error'))
  <div class="alert alert-danger">
    {{ session('error') }}
  </div>
@endif

5. Bootstrapで見た目を整える方法

5. Bootstrapで見た目を整える方法
5. Bootstrapで見た目を整える方法

Bootstrapのalertクラスで見た目を整えられます:


@if (session('success'))
  <div class="alert alert-success alert-dismissible fade show" role="alert">
    {{ session('success') }}
    <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
  </div>
@endif

これで緑色のメッセージが表示され、✕ボタンで閉じられるようになります。

6. flashメッセージの表示を共通化しよう

6. flashメッセージの表示を共通化しよう
6. flashメッセージの表示を共通化しよう

表示用のBladeを部分テンプレートにして@includeで呼ぶと便利です:


<!-- resources/views/partials/flash.blade.php -->
@if (session('success'))
  <div class="alert alert-success">{{ session('success') }}</div>
@endif
@if (session('error'))
  <div class="alert alert-danger">{{ session('error') }}</div>
@endif

メインのビューでは次のように@includeします:


@include('partials.flash')

これでどのページにも簡単に表示できます。

7. 注意点とベストプラクティス

7. 注意点とベストプラクティス
7. 注意点とベストプラクティス
  • flashメッセージは「一回限り」。リロードすると消えます。
  • 多言語対応する場合は、__('登録が完了しました!') のように翻訳対応できます。
  • CSSフレームワークに応じてalertクラスを変更しましょう。

まとめ

まとめ
まとめ

ここまで、Laravelでセッションを利用した flash メッセージの基本的な考え方から、 コントローラでの設定方法、Bladeテンプレートでの表示方法、Bootstrapを使った見た目の調整、 さらに部分テンプレートによる共通化までを順番に学んできました。 flashメッセージは、LaravelでWebアプリケーションを作るうえで非常に登場回数の多い仕組みです。 フォーム送信後の「登録が完了しました」「更新に成功しました」「エラーが発生しました」といった 一時的な通知をユーザーに伝えるために欠かせません。

特に重要なのは、flashメッセージが「一度だけ表示される」という点です。 通常のセッションと違い、次のリクエストで自動的に消えるため、 フォーム送信後やリダイレクト後の画面にぴったりの仕組みになっています。 Laravelでは redirect()->with() を使うだけで簡単に flash メッセージを設定できるため、 初心者の方でもすぐに実装できるのが大きな魅力です。 こうしたシンプルさは、Laravelが多くの開発者に選ばれている理由の一つでもあります。

Bladeテンプレート側では、session('キー') を使って flash メッセージの存在を確認し、 条件分岐で表示を切り替えるだけで対応できます。 これにより、サーバー側の処理と画面表示の役割がはっきり分かれ、 コードの見通しが良くなります。 また、Bootstrapの alert クラスを使えば、 成功・エラー・警告といったメッセージを色分けして表示でき、 ユーザーにとって分かりやすい画面を作ることができます。

実務レベルのLaravel開発では、flashメッセージの表示処理を毎回各ビューに書くのではなく、 部分テンプレートとして共通化するのが一般的です。 @include を使って一か所にまとめておけば、 デザイン変更やメッセージの追加・修正も簡単に行えます。 この考え方は、flashメッセージに限らず、 LaravelやBlade全体でとても重要な設計のポイントになります。 「同じ処理を何度も書かない」という意識を持つことで、 保守しやすく、読みやすいコードを書くことができるようになります。

また、flashメッセージはユーザー体験を向上させるための重要な要素です。 何が成功したのか、なぜ失敗したのかが画面上で明確に伝わることで、 ユーザーは安心して操作を続けることができます。 特にフォーム送信後に何も表示されない場合、 ユーザーは「本当に送信できたのかな?」と不安になってしまいます。 その不安を解消するためにも、flashメッセージは積極的に活用したい仕組みです。

flashメッセージ実装の基本例を振り返る

最後に、Laravelでよく使われる flash メッセージの基本的な実装例を改めて確認してみましょう。 コントローラでメッセージを設定し、Bladeで表示するという流れを理解しておくことが大切です。


return redirect()
    ->back()
    ->with('success', '登録が完了しました!');

@if (session('success'))
    <div class="alert alert-success">
        {{ session('success') }}
    </div>
@endif

このように、Laravelの flash メッセージは非常にシンプルな記述で実装できます。 まずはこの基本形をしっかり身につけ、 そのうえでBootstrapによる装飾や部分テンプレートによる共通化に挑戦してみましょう。 小さな積み重ねが、実務で通用するLaravelスキルにつながっていきます。

先生と生徒の振り返り会話

生徒

「flashメッセージって、ただの通知だと思っていましたが、 ユーザーに安心感を与える大事な役割があるんですね。」

先生

「その通りです。ユーザーは画面の反応を見て次の行動を決めます。 flashメッセージは、その判断材料を分かりやすく伝えるための仕組みなんです。」

生徒

「redirectとwithを使うだけで実装できるのは、思ったより簡単でした。」

先生

「Laravelは、よく使う処理を簡単に書けるように設計されています。 flashメッセージもその代表例ですね。」

生徒

「部分テンプレートにして共通化する考え方も勉強になりました。 これからは同じ表示を何度も書かないようにします。」

先生

「それはとても良い意識です。 flashメッセージを使いこなせるようになると、 Laravelでのフォーム処理が一段と分かりやすくなりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Laravelのflashメッセージとは何ですか?初心者にもわかりやすく教えてください

Laravelのflashメッセージとは、セッションに一時的に保存されるデータで、主にフォーム送信後の成功メッセージやエラーメッセージ表示に使われます。一度だけ表示されて自動的に消えるのが特徴で、ユーザー体験を向上させる重要な機能です。
カテゴリの一覧へ
新着記事
New1
Symfony
Symfonyとは?PHPの堅牢なフレームワークの特徴と活用シーン
New2
Laravel
Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
New3
Laravel
Laravelのモック化を完全解説!MockeryとFacadesでテストを簡単にする方法
New4
CodeIgniter
CodeIgniterバリデーションのよくある失敗例と対策!初心者向けエラーチェック完全ガイド
人気記事
No.1
Java&Spring記事人気No1
Symfony
Symfonyの抽象コントローラとは?AbstractControllerを初心者向けにやさしく解説
No.2
Java&Spring記事人気No2
PHP
PHPで定数を定義する方法!defineとconstの違いと使い分けを徹底比較
No.3
Java&Spring記事人気No3
Symfony
Symfonyでバリデーションメッセージを多言語対応する方法!初心者でもわかる国際化の基本
No.4
Java&Spring記事人気No4
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.5
Java&Spring記事人気No5
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.6
Java&Spring記事人気No6
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.7
Java&Spring記事人気No7
Laravel
Laravelのルーティングの基本構文と書き方をやさしく解説!初心者でも理解できるWebルートの仕組み
No.8
Java&Spring記事人気No8
Symfony
Symfonyでルーティングとコントローラを連携する方法をやさしく解説!初心者でもわかるURLと処理のつなげ方