カテゴリ: Laravel 更新日: 2025/12/11

Laravelでフォーム送信後にリダイレクト・メッセージを表示する方法

Laravelでフォーム送信後にリダイレクト・メッセージを表示する方法
Laravelでフォーム送信後にリダイレクト・メッセージを表示する方法

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

生徒

「Laravelでフォームを送信した後に、別のページに移動して成功メッセージを出すことはできますか?」

先生

「はい、できます。Laravelにはredirectwithを組み合わせることで、フォーム送信後に別ページに移動し、メッセージを表示する機能があります。」

生徒

「redirectって何ですか?ちょっと難しそうです。」

先生

「redirectとは、あるURLに自動で移動することです。例えば郵便局で手紙を受け取ったら、自動的に次の部屋に案内されるイメージです。」

1. 基本的なフォーム送信とリダイレクト

1. 基本的なフォーム送信とリダイレクト
1. 基本的なフォーム送信とリダイレクト

まずは簡単なフォームを作り、送信後に別のページに移動させてみましょう。


<form action="{{ route('form.submit') }}" method="POST">
    @csrf
    <input type="text" name="name" class="form-control mb-2" placeholder="名前を入力">
    <button type="submit" class="btn btn-primary">送信</button>
</form>

public function submit(Request $request)
{
    $name = $request->input('name');

    // 必要ならここで保存処理

    // リダイレクトしてメッセージを表示
    return redirect()->route('form.show')->with('success', '送信が完了しました!');
}

ここではredirect()->route()で指定したルートに移動し、with('success', 'メッセージ')でフラッシュメッセージを送信しています。

2. Bladeテンプレートでメッセージを表示

2. Bladeテンプレートでメッセージを表示
2. Bladeテンプレートでメッセージを表示

リダイレクト先のページで、フラッシュメッセージを表示するにはBladeで次のように書きます。


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

session('success')で、Controllerから送られたメッセージを受け取ることができます。これによりユーザーは、送信が成功したことを視覚的に確認できます。

3. エラー時のリダイレクトとメッセージ

3. エラー時のリダイレクトとメッセージ
3. エラー時のリダイレクトとメッセージ

バリデーションでエラーが発生した場合も、リダイレクトして入力内容を保持しつつエラーメッセージを表示できます。


public function submit(Request $request)
{
    $request->validate([
        'name' => 'required|max:50',
    ]);

    // 保存処理
    // ...

    return redirect()->route('form.show')->with('success', '送信が完了しました!');
}

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

Laravelでは$errorsにバリデーションエラーが自動で格納されるので、簡単にエラー表示が可能です。

4. 注意点とポイント

4. 注意点とポイント
4. 注意点とポイント
  • フォーム送信後はredirect()->route()で別ページへ遷移させる
  • with()を使うとフラッシュメッセージを簡単に送信できる
  • Bladeでsession('success')を使ってメッセージを表示
  • バリデーションエラーは$errorsで受け取り、リダイレクト先で表示する
  • これによりユーザーは送信成功やエラーをすぐに確認でき、UXが向上する
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)
No.7
Java&Spring記事人気No7
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.8
Java&Spring記事人気No8
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド