日付
$request->validate([ 'date' => 'date', ]);
OK : 2010-01-02 OK : 2010/01/02 OK : 2010-01-02 10:05:03 NG : 2010-01-32
開始日,終了日
日付の整合性チェック。終了日は入力しないでもOK
$request->validate([ 'start_date' => 'date', 'end_date' => 'nullable|after_or_equal:start_date', ]);
OK: start_date: 2010-01-02, end_date: 2010-01-02 OK: start_date: 2010-01-02, end_date: 2010-01-03 OK: start_date: 2010-01-02, end_date: NG: start_date: 2010-01-02, end_date: 2010-01-01
電話番号(入力がわかれている場合)
$request->validate([ 'tel01' => 'required_with:tel02,tel03|numeric', 'tel02' => 'required_with:tel01,tel03|numeric', 'tel03' => 'required_with:tel01,tel02|numeric', ]);
OK: tel01: 123, tel02: 456, tel03: 789 NG: tel01: abc, tel02: 456, tel03: 789 NG: tel01: 123, tel02:, tel03: 789 NG: tel01: 123, tel02: 456, tel03:
どちらかの項目に入力があること
$request->validate([ 'email' => 'required_without:tel', 'tel' => 'required_without:email', ]);
OK: email: sample@example.com, tel: OK: email: , tel: 123456789 NG: email: , tel:
複数合わせた項目
functionを利用して独自のvalidateを作成
$telValidate = function($attribute, $value, $fail) use ($values){ if(empty($values->tel01) || empty($values->tel02) || empty($values->tel03) ){ $fail('電話番号は必須です。'); } }; $request->validate([ // <-- ここがバリデーション部分 'tel01' => ['required', 'numeric', $telValidate], 'tel02' => ['required', 'numeric'], 'tel03' => ['required', 'numeric'], ])
まとめ
次のバリデートはパスワードまわりとDB関係の記事が書きたいです。