目的
- laravelで任意のフィールドの値が指定したものと一致していない時に当該フィールドのバリデートをスキップする方法をまとめる
方法
-
フィールド
check
の値に「true」という文字列以外が格納されたとき以外に、フィールドinput_str
の値のバリデーションをスキップしたい時は下記のように記載する。 -
input_str
の値のバリデーションルールは「必須」と「文字列であること」とする。 -
下記はリクエストファイルの
rules()
メソッドの内容のみ抜粋して記載する。HogeRequest.php/** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'check' => 'required', 'input_str' => 'exclude_unless:check,true|required|string', ]; }
-
任意のフィールドの値が指定したものと一致していない時のみ除外してほしいバリデーションルールの頭に
exclude_unless:フィールド名,指定された値
を記載する。