カテゴリ: Laravel 更新日: 2026/03/12

Laravelでフォームバリデーションを組み込む方法(Controller側)

Laravelでフォームバリデーションを組み込む方法(Controller側)
Laravelでフォームバリデーションを組み込む方法(Controller側)

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

生徒

「先生、Laravelでフォームの入力値をチェックする方法はありますか?」

先生

「もちろんあります。LaravelではController側で簡単にフォームバリデーションを組み込めます。」

生徒

「具体的にはどうやって書くんですか?」

先生

「それでは、実際のControllerコードを例に見ていきましょう!」

1. バリデーションとは?

1. バリデーションとは?
1. バリデーションとは?

バリデーションとは、ユーザーがフォームに入力した値が正しいかどうかをチェックする処理のことです。例えば、メールアドレス欄に文字列が入っていたり、必須入力欄が空だった場合にエラーを返すことで、不正なデータが保存されるのを防ぎます。Laravelのバリデーションを理解すると、安全で信頼性の高いアプリケーションを作ることができます。

2. Controllerでバリデーションを組み込む方法

2. Controllerでバリデーションを組み込む方法
2. Controllerでバリデーションを組み込む方法

Controllerでバリデーションを組み込む場合、Requestオブジェクトのvalidate()メソッドを使います。簡単な例として、名前とメールアドレスを入力するフォームのバリデーションは次のように書けます。


use Illuminate\Http\Request;

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

    // バリデーションを通ったデータを使って処理を行う
    // 例: データベースに保存する
}

このコードでは、nameが必須で最大50文字まで、emailが必須かつメール形式であることをチェックしています。もしバリデーションに引っかかると、自動的に前のフォームページにリダイレクトされ、エラーメッセージが表示されます。

3. バリデーションルールの種類

3. バリデーションルールの種類
3. バリデーションルールの種類

Laravelには多くの便利なバリデーションルールが用意されています。主なルールをいくつか紹介します。

  • required: 必須入力
  • email: メールアドレス形式
  • max:数値: 最大文字数または数値の上限
  • min:数値: 最小文字数または数値の下限
  • confirmed: 確認入力フィールドとの一致(例: パスワード)

これらを組み合わせることで、柔軟にフォームの入力チェックを行えます。

4. バリデーションエラー時の自動リダイレクト

4. バリデーションエラー時の自動リダイレクト
4. バリデーションエラー時の自動リダイレクト

Controllerでvalidate()を使用すると、バリデーションに失敗した場合は自動で前のページにリダイレクトされます。また、エラー内容はセッションに保存されるため、Bladeテンプレートで簡単に表示できます。


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

このように書くと、ユーザーが入力ミスした箇所が分かりやすく表示されます。

5. old()関数と組み合わせる

5. old()関数と組み合わせる
5. old()関数と組み合わせる

前回入力した値を保持するold()関数と組み合わせると、フォーム再表示時にユーザーが入力した値を復元できます。例えば、名前欄を次のように書くと、入力値が消えません。


<input type="text" name="name" value="{{ old('name') }}">

これにより、ユーザーはエラー箇所だけを修正すればよく、再入力の手間が減ります。

6. ポイントまとめ

6. ポイントまとめ
6. ポイントまとめ
  • Controller側でRequest::validate()を使うと簡単にバリデーションを組み込める
  • バリデーションルールを組み合わせることで柔軟なチェックが可能
  • バリデーション失敗時は自動でリダイレクトされ、エラーメッセージを表示できる
  • old()関数と組み合わせて入力値を保持するとユーザー体験が向上する

これらのポイントを押さえることで、Laravelで安全で使いやすいフォームを作成できます。

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

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

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

Laravelのフォームバリデーションとは何ですか?Laravel初心者でも理解できるControllerバリデーションの基本を知りたいです。

Laravelのフォームバリデーションとは、ユーザーがフォームに入力したデータが正しい形式かどうかを確認する仕組みのことです。例えば、必須入力の項目が空欄になっていないか、メールアドレスが正しい形式になっているかなどをチェックします。LaravelではControllerでバリデーション処理を簡単に書くことができるため、初心者でも安全なWebアプリケーションを作ることができます。
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説
New2
Laravel
Laravelでマルチ言語ルートを設定する方法!ロケールごとのprefixで簡単管理
New4
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
人気記事
No.1
Java&Spring記事人気No1
Symfony
SymfonyのRemember Me機能を完全解説!初心者でもわかるログイン保持の仕組み
No.2
Java&Spring記事人気No2
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.3
Java&Spring記事人気No3
Laravel
LaravelのFeatureテストとUnitテストの違いを理解しよう
No.4
Java&Spring記事人気No4
Laravel
Laravelでルートに中間処理を追加する方法!ミドルウェア活用ガイド
No.5
Java&Spring記事人気No5
CodeIgniter
CodeIgniterで多言語対応(Language)を徹底解説!言語切り替え機能を実装
No.6
Java&Spring記事人気No6
Laravel
Laravelでドメインルートを使う方法!マルチドメイン対応を初心者向けに解説
No.7
Java&Spring記事人気No7
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.8
Java&Spring記事人気No8
Laravel
Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説