はじめに
今回はバリデーションの使い方について説明します。
バリデーションとはフォームから入力された値がルールを守れているかチェックすることです。
ルールを設けることで意図していない形式の入力を防ぐことができます。
バリデーションの使い方
では、バリデーションの使い方について説明します。
下記のコードで基本的なバリデーションはできます。
フォームから値が送信されるアクション(post
)内の記述です
入力フォームからname
,mail
,age
の3つの値が送信されます
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')}}">
疑問、気になるところがございましたら、質問、コメントよろしくお願いします!!!