Sigal Zahavi
Sigal Zahavi

Reputation: 1063

Laravel conditional unique validation

Working with Laravel 5.4, I need to validate if the email field on the users table is unique only if the role_id field is not 999.

In the Register Controller I did this:

      return Validator::make($data, [
            'first_name' => 'required|max:255',
            'last_name' => 'required|max:255',
            'email' => [
                'required',
                'email',
                'max:255',
                Rule::unique('users')->where(function($query) {
                  $query->where('role_id', '<>', 999);
    })
   ],

            'phone' => 'required|phone',
            'password' => 'required|min:6|confirmed'
        ]);

But when I try to register I get this error:

Class 'App\Http\Controllers\Auth\Rule' not found

What am I doing wrong?

Thank you

Upvotes: 6

Views: 7947

Answers (1)

thefallen
thefallen

Reputation: 9749

You have to include the Rule class with a use at the top of your file after the namespace declaration:

use Illuminate\Validation\Rule; 

Upvotes: 6

Related Questions