- 単純なインデックスベースのバリデーション:
リクエスト内の配列がインデックスベースである場合、
.*
を使用してバリデーションルールを指定することができます。例えば、items
という名前の配列がある場合、以下のようにバリデーションルールを定義します。
public function rules()
{
return [
'items.*' => 'required|string',
];
}
上記の例では、items
配列内のすべての要素が必須であり、文字列であることをバリデートしています。
- 配列内の要素ごとのバリデーション: 配列内の各要素に異なるバリデーションルールを適用したい場合は、配列インデックスを指定して個別にルールを定義します。以下に例を示します。
public function rules()
{
return [
'items.0' => 'required|string',
'items.1' => 'numeric',
'items.2' => 'email',
];
}
上記の例では、items
配列の最初の要素は必須であり、文字列であることを、2番目の要素は数値であることを、3番目の要素はメールアドレスであることをバリデートしています。
- ネストした配列のバリデーション: ネストした配列をバリデートする場合は、ドット記法を使用してネストしたフィールドにアクセスします。以下に例を示します。
public function rules()
{
return [
'items.*.name' => 'required|string',
'items.*.quantity' => 'numeric|min:1',
];
}
上記の例では、items
配列内の各要素がname
フィールドを必須の文字列とし、quantity
フィールドが数値であり、最小値が1であることをバリデートしています。
これらはLaravelで配列のバリデーションを行うための一般的な方法です。必要に応じて、他のバリデーションルールやメッセージを追加することもできます。詳細については、Laravelの公式ドキュメントを参照してください。