40

I just need to check in Laravel validation that an array contains minimum 2 values and maximum 4 values. Is there any default validation rule can be used for this ? The size element checks for exact size match and the other rules likes min and max are for strings, digits and file size.

4
  • I do not believe there currently is a validation rule for this. You can however create a custom validation rule. Commented Feb 20, 2017 at 10:51
  • which laravel version do you use? Commented Feb 20, 2017 at 10:52
  • I am using Laravel 5.2 Commented Feb 20, 2017 at 10:54
  • Ah Ok. You need to make your own validator check. The default size validator only checks the value and not min/max. Commented Feb 20, 2017 at 11:00

2 Answers 2

65

A little bit late:

return [
    "ticket_photo" => ["required","array","min:2","max:4"], // validate an array contains minimum 2 elements and maximum 4 
    "ticket_photo.*" => ["required","mimes:jpeg,jpg,png,gif"], // and each element must be a jpeg or jpg or png or gif file 
];

laravel 5.6

Sign up to request clarification or add additional context in comments.

Comments

52

You can use between. . https://laravel.com/docs/5.2/validation#rule-between

For example:

'users' => 'required|array|between:2,4'

It is not explicitly stated in the docs, but it works with arrays, just like size.

For more details, read validating array lengths in Laravel

1 Comment

Now It is in Documentation too 5.6

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.