Laravel 条件唯一验证

Sig*_*avi 5 validation laravel-5

使用 Laravel 5.4,仅当 role_id 字段不是 999 时,我才需要验证用户表上的电子邮件字段是否唯一。

在注册控制器中,我这样做了:

      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'
        ]);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试注册时出现此错误:

找不到类“App\Http\Controllers\Auth\Rule”

我究竟做错了什么?

谢谢

the*_*len 5

您必须在命名空间声明之后在文件顶部包含Rule带有use的类:

use Illuminate\Validation\Rule; 
Run Code Online (Sandbox Code Playgroud)