Reputation: 2736
How to validate a laravel request object, I have this conditions
request()->validate([
'avatar' => 'required|image',
'display_name' => 'required|min:3|max:100',
'role_id' => 'required|integer',
'username' => 'required|unique:users|min:4|max:15',
'email' => 'required|email|unique:users',
'phone_number' => 'required|min:3',
'password' => 'required|min:6',
'country_id' => 'required|integer'
]);
But in my request it was stored in an object form, what should I do to make the validations work ?
Upvotes: 1
Views: 3390
Reputation: 46
For unique validation you can pass the field name on which you need to apply validation, by default it takes the key name.
You can use this for unique validation on object data:-
'form.username' => 'required|unique:users,username|min:4|max:15'
Upvotes: 1
Reputation: 1363
You validate it the same way you validate a multi-dimensional array:
request()->validate([
'form.avatar' => 'required|image',
'form.display_name' => 'required|min:3|max:100',
'form.role_id' => 'required|integer',
'form.username' => 'required|unique:users|min:4|max:15',
'form.email' => 'required|email|unique:users',
'form.phone_number' => 'required|min:3',
'form.password' => 'required|min:6',
'form.country_id' => 'required|integer'
]);
If your form is an array of object, you can use wildcard
request()->validate([
'form.*.avatar' => 'required|image',
'form.*.display_name' => 'required|min:3|max:100',
'form.*.role_id' => 'required|integer',
'form.*.username' => 'required|unique:users|min:4|max:15',
'form.*.email' => 'required|email|unique:users',
'form.*.phone_number' => 'required|min:3',
'form.*.password' => 'required|min:6',
'form.*.country_id' => 'required|integer'
]);
Upvotes: 5