Laravelの配列のバリデーション【現役エンジニアが解説】
今回は、Laravelの配列のバリデーションについて、簡単に解説していきます。
配列
以下のようなRequestからの配列を想定します。
$data = { 'prime_number' => [2,3,5,7], };
これをLaravelでバリデーションする場合のルールは以下のようになります。
$rules = { 'prime_number' => 'required|array', 'prime_number.*' => 'int', };
以下のようにValidatorファサードのmakeメソッドを使ってバリデーションできます。
Validator::make($data, $rules)->passes();
連想配列
以下のようなRequestからの配列と連想配列を想定します。
$data = { 'one' => { 'number' => 1, 'prime_number' => false, 'odd_number' => true, 'even_number' => false, }, };
このデータをLaravelでバリデーションする場合のルールは以下のようになります。
$rules = { 'one' => 'required|array', 'one.number' => 'required|int', 'one.prime_number' => 'required|boolean', 'one.odd_number' => 'required|boolean', 'one.even_number' => 'required|boolean', };
以下のようにValidatorファサードのmakeメソッドを使い、バリデーションできます。
Validator::make($data, $rules)->passes();
配列の中に連想配列
以下のようなRequestからのデータを想定します。
$data = { 'numbers' => [ {'number' => 1, 'prime_number' => false, 'odd_number' => true, 'even_number' => false}, {'number' => 2, 'prime_number' => true, 'odd_number' => false, 'even_number' => true}, ], };
このネストしたデータをLaravelでバリデーションする場合のルールは以下のとおりです。
$rules = { 'numbers' => 'required|array', 'numbers.*.number' => 'required|int', 'numbers.*.prime_number' => 'required|boolean', 'numbers.*.odd_number' => 'required|boolean', 'numbers.*.even_number' => 'required|boolean', };
以下のようにValidatorファサードのmakeメソッドを使うことによってバリデーションできます。
Validator::make($data, $rules)->passes();