概要
Laravelで配列のバリデーションルールを定義する場合、配列自体と配列の要素にそれぞれルールを定義する必要がある。
また、多次元配列の場合、各次元のルールを定義する必要がある。
サンプル
通常の配列(一次元配列)の場合
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreItemRequest extends FormRequest
{
public function rules(): array
{
return [
'item_name' => ['required', 'array'],
'item_name.*' => ['required', 'string', 'max:20'], // 各要素は必須で最大20文字まで
];
}
}
二次元配列の場合
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreItemRequest extends FormRequest
{
public function rules(): array
{
return [
'item_name' => ['required', 'array'],
'item_name.*' => ['required', 'array'], // 一次元配列の要素は必須
'item_name.*.*' => ['nullable', 'integer'], // 二次元配列の要素はnull許可で数値
];
}
}
インデックス指定する場合
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreItemRequest extends FormRequest
{
public function rules(): array
{
return [
'item_name' => ['required', 'array'],
'item_name.0' => ['required', 'array'],
'item_name.1' => ['required', 'array'],
'item_name.0.*' => ['nullable', 'integer'],
'item_name.1.*' => ['nullable', 'integer'],
];
}
}