独自のバリデーションを作成する [Laravel]
カスタムバリデーションルールやValidatorクラスを継承、サービスプロバイダでresolver、Validator::extendを使用するなどありますが、面倒です。
ここでは新規ファイル、サービスプロバイダを使用しないで独自のバリデーションを作成する方法をご紹介します。
イメージ


参考コード
流れとしては最初に通常のバリデーションを実行後、その戻り値を使用して独自のエラー処理を行い、エラーの場合はredirect()で戻してあげればOK。
public function store(Request $request) { // 通常のバリデーション ※戻り値は検証後の各値の配列 $validatedData = $request->validate($rules); // dump($validatedData) // ダンプ結果 // array:7 [▼ // "yyyy" => "2021" // "mm" => "12" // "dd" => "27" // "debit_account_id" => "5" // "credit_account_id" => "4" // "money" => "11251" // "summary" => "クレカ引き落とし(○○カード/三菱)" // ] // $validatedDataを使用してココでエラー処理を行う // エラーの場合は以下を実行すれば良い // ※moneyはinputタグのnameです。 return redirect()->back() ->withErrors(['money' => "このままだと未払金を支払い過ぎます。(" . number_format($total) . "円多い) ※他の仕訳の「未払金」を確認して下さい。"]) ->withInput(); } public function update(Request $request) { // store()と同様 }
関連記事
スポンサーリンク
関連記事
公開日:2020年12月09日
記事NO:02865