Laravel7 他のフィールド(POST値)によってバリデーションの有効/無効にする方法

他のフィールドによってバリデーションを行う/行わないという便利なルールがあるけど、このルールは非常に混乱する。。。

exclude_ifは値が一致する場合、バリデーションを行わず
exclude_unlessは値が一致しない場合、バリデーションを行わない???
つまり除外のルールを記述するようなっていて非常に分かりにくい。。。
このルールってelseを考えながら逆を定義しないといけないんよね。。。

aとbがpostされる時

aの値が1の時、bを必須入力チェックしたい場合

            'b' => 'exclude_unless:a,1|required',

つまり、aが1ではない時チェックしない = aが1の時チェックする

aの値が1以外の時、bを必須入力チェックしたい場合

            'b' => 'exclude_if:a,1|required',

つまり、aが1の時チェックしない = aが1以外の時チェックする

非常に迷う!!!

個人的には、除外のルールではなくて
一致した時にチェックしてくれるexecute_ifと
一致しない時にチェックしてくれるexecute_unlessのようなものがあると嬉しいのだが。。。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です