1
0

More than 3 years have passed since last update.

【Laravel】バリデーションを利用しよう

Posted at

はじめに

今回はバリデーションの使い方について説明します。
バリデーションとはフォームから入力された値がルールを守れているかチェックすることです。
ルールを設けることで意図していない形式の入力を防ぐことができます。

バリデーションの使い方

では、バリデーションの使い方について説明します。
下記のコードで基本的なバリデーションはできます。
フォームから値が送信されるアクション(post)内の記述です
入力フォームからname,mail,ageの3つの値が送信されます

app/Http/Controllers/コントローラ
public function post(Request $request)
    {
        $validate_rule = [
            'name' = 'required',
            'mail' = 'email',
            'age' = 'numeric|between:0,150',
        ];
        $this->validate($request, $validate_rule);
    }
  • $validate_rule
    バリデーションのルールを定義するための配列です。

  • 'name' = 'required'
    name'required'を設定しています。
    'required'は必須項目というルールです

  • 'mail' = 'email'
    'email'はメールアドレスとして正しいかをチェックしています

  • 'age' = 'numeric|between:0,150'
    'numeric|between:0,150'は数字でかつ0~150の間であることをチェックしています。

  • validate($request, $validate_rule)
    $request(フォームの入力値が含まれる)に対して$validate_ruleのルールでバリデーションします。

以上でバリデーションの実装は完了です。

おまけ

これからは付随するおまけの話になります

エラーメッセージの表示

バリデーションは完了しましたが、
エラーでリダイレクトされてもエラーの原因がわからなければ、修正しにくいですね
エラーメッセージを表示させる方法について書きます。
エラーメッセージは$errorsにまとめて入っています。
よって、以下のような感じで表示させるといいと思います。

{{$errors}}

古い値を使う

エラーでリダイレクトした時に以前の入力値がフォームに入っていないと一から入力し直さなければなりません。
それはめんどくさいので、あらかじめ以前の値を入力されている状態にしておきましょう
下記の例を参考にしてください

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

疑問、気になるところがございましたら、質問、コメントよろしくお願いします!!!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0