Laravelの配列のバリデーション【現役エンジニアが解説】

PROGRAM

今回は、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();