Laravelで配列のバリデーション方法


  1. 単純なインデックスベースのバリデーション: リクエスト内の配列がインデックスベースである場合、.*を使用してバリデーションルールを指定することができます。例えば、itemsという名前の配列がある場合、以下のようにバリデーションルールを定義します。
public function rules()
{
    return [
        'items.*' => 'required|string',
    ];
}

上記の例では、items配列内のすべての要素が必須であり、文字列であることをバリデートしています。

  1. 配列内の要素ごとのバリデーション: 配列内の各要素に異なるバリデーションルールを適用したい場合は、配列インデックスを指定して個別にルールを定義します。以下に例を示します。
public function rules()
{
    return [
        'items.0' => 'required|string',
        'items.1' => 'numeric',
        'items.2' => 'email',
    ];
}

上記の例では、items配列の最初の要素は必須であり、文字列であることを、2番目の要素は数値であることを、3番目の要素はメールアドレスであることをバリデートしています。

  1. ネストした配列のバリデーション: ネストした配列をバリデートする場合は、ドット記法を使用してネストしたフィールドにアクセスします。以下に例を示します。
public function rules()
{
    return [
        'items.*.name' => 'required|string',
        'items.*.quantity' => 'numeric|min:1',
    ];
}

上記の例では、items配列内の各要素がnameフィールドを必須の文字列とし、quantityフィールドが数値であり、最小値が1であることをバリデートしています。

これらはLaravelで配列のバリデーションを行うための一般的な方法です。必要に応じて、他のバリデーションルールやメッセージを追加することもできます。詳細については、Laravelの公式ドキュメントを参照してください。