Laravelバリデーション入門:安全なフォームを作る基本テクニック【実務で超重要】

コンニチハ

パンに塗り塗りジャム太郎です!

今回のテーマは「Laravelバリデーション入門」についてです。


はじめに

  • 「フォームのバリデーションって何?」
  • 実務では絶対に必要なスキル
  • Laravelなら超簡単にバリデーションが書けます。

①バリデーションの基本的な書き方

$request->validate([
    'name' => 'required',
    'email' => 'required|email',
    'message' => 'required|max:500',
]);
  • $request->validate() を使えば一発!
  • ルールはパイプ(|)で区切るだけ。

②失敗時のエラーメッセージ表示

  • Laravelは自動で前の画面に戻し、エラーメッセージも用意
  • Blade側で以下のように書けばOK
@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

③Bladeとの連携(フォーム全体の例)

<form method="POST" action="/contact">
    @csrf
    <input type="text" name="name" value="{{ old('name') }}">
    @error('name')
        <div class="error">{{ $message }}</div>
    @enderror

    <input type="email" name="email" value="{{ old('email') }}">
    @error('email')
        <div class="error">{{ $message }}</div>
    @enderror

    <textarea name="message">{{ old('message') }}</textarea>
    @error('message')
        <div class="error">{{ $message }}</div>
    @enderror

    <button type="submit">送信</button>
</form>
  • old() 関数を使って入力内容を保持
  • @error ディレクティブで個別エラーを表示

④よく使うバリデーションルールまとめ

ルール説明
required入力必須
emailメールアドレス形式
max:数値最大文字数
min:数値最小文字数
numeric数値のみ
date日付
confirmedパスワード確認用

※ 実務でまず覚えるならこの7個でOK!


⑤まとめ

  • 実務の9割は基本のバリデーションで対応可能
  • Laravelなら「短く」「安全に」「簡単に」書ける
  • 今日から使ってみよう!

では、また次の記事で〜

投稿者 パンに塗り塗りジャム太郎

コンニチハ! Z世代のパンに塗り塗りジャム太郎です。 Web系自社開発企業でポンコツエンジニアをしております。 このブログでは最低1人にでもタメになってくれたらいいなぁ〜ぐらいの内容を発信しています。 お手柔らかによろしくお願いいたします。