-
in ルールを使用する方法: Laravelのルール検証では、inルールを使用することで指定した配列内に値が存在するかどうかをチェックすることができます。以下は具体的なコード例です。
$rules = [ 'my_array' => 'required|array|in:foo,bar,baz', ];
上記の例では、
my_array
というフィールドが配列であり、その中にfoo
、bar
、baz
のいずれかの値が存在することを検証しています。もし存在しない値が含まれている場合、バリデーションエラーが発生します。 -
Rule クラスを使用する方法: もう一つの方法として、
Rule
クラスを使用して独自のカスタムルールを作成する方法があります。以下は具体的なコード例です。use Illuminate\Contracts\Validation\Rule; class ArrayExistsInRule implements Rule { protected $array; public function __construct($array) { $this->array = $array; } public function passes($attribute, $value) { return in_array($value, $this->array); } public function message() { return 'The selected value is invalid.'; } } // ルールの使用例 $rules = [ 'my_array' => ['required', 'array', new ArrayExistsInRule(['foo', 'bar', 'baz'])], ];
上記の例では、
ArrayExistsInRule
というカスタムルールを作成し、そのルールをmy_array
フィールドに適用しています。passes
メソッドでは、配列内に値が存在するかどうかをチェックし、message
メソッドではエラーメッセージを定義しています。
これらの方法を使用することで、Laravelにおいてルール検証で配列の存在チェックを行うことができます。適宜、自身の要件に合わせてカスタマイズして利用してください。