TheBAST
TheBAST

Reputation: 2736

How do you validate a laravel json object request in laravel 5.5

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 ?

enter image description here

Upvotes: 1

Views: 3390

Answers (2)

n41tik
n41tik

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

catcon
catcon

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

Related Questions