Laravelのバリデーションに登場するrequiredには、他のフィールドの状態に応じて必須にするかを決めるルールがいくつかあります。
指定した項目が必須になる条件を付けたい場合に非常に便利です。
例えば、AとBの入力項目の内どちらかを必須にしたり、チェックボックスにオン(チェック状態)にした場合のみテキストボックスを必須にするなど、使い方は様々です。
目次
様々な条件で必須にする
Laravelが用意しているrequiredバリデーションには以下の7種類あり、指定の入力項目だけでなく、他の入力項目と状態に応じて必須にするか否かを指定できます。
1 2 3 4 5 6 7 |
required required_if required_unless required_with required_with_all required_without required_without_all |
それぞれどのように使用するかは、こちらの参考サイトに詳しい説明があります。
全54種類!Laravel 5.7のバリデーション実例
Laravelにはいつも開発の作業効率をあげてもらって、とても感謝しているんですけど、その中でもトップクラスでありがたいと感じるもの、それがバリデーション機能です。 バ...
使用例
著者が実際に使用した時のちょっと複雑な例をご紹介します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/** * Get the validation rules that apply to the request. * * @return array */ public static function rules() { return [ 'center' => 'required_without_all:left,right|array|size:3', 'center.foo' => 'required_with:center|string|alpha', 'center.bar' => 'required_with:center|integer|min:0,max:1000', 'left' => 'required_with:right|array|size:3', 'left.foo' => 'required_with:left|string|alpha', 'left.bar' => 'required_with:left|integer|min:0,max:1000', 'right' => 'required_with:left|array|size:3', 'right.foo' => 'required_with:right|string|alpha', 'right.bar' => 'required_with:right|integer|min:0,max:1000', 'other' => 'required|integer', ]; } |
少しだけ解説
- center
- leftとrightが空白(存在しない)なら、centerは必須。
centerが存在するなら、center.fooとcenter.barは必須。 - left
- rightが存在するなら、leftは必須。
leftが存在するなら、left.fooとleft.barは必須。 - right
- leftが存在するなら、rightは必須。
rightが存在するなら、right.fooとright.barは必須。
Laravel、やっぱり便利ですね!
コメント