Laravel 5.7验证是否还有其他用户使用相同的电子邮件

时间:2018-12-08 15:43:37

标签: php laravel

我正在创建用户CRUD,并且使用“请求”来验证控制器的方法。在我的更新方法中,我具有符合以下规则的验证器:

return [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', function($attribute, $value){
                // How to validate?
            }],
            'roles' => ['required', 'array', 'in:admin,manager,employee,client']            
        ]

更新用户时,我试图验证是否有另一个用户具有相同的电子邮件,但是我找不到解决方法。

这是我收到的模型(这是一个REST API)。用户ID作为URL参数出现:

{
    "name":"Andre Luiz",
    "email": "andredx@xxxxxxxx.com",
    "roles": ["admin"]
}

如何进行验证?

2 个答案:

答案 0 :(得分:0)

您可以通过unique:users ..进行验证,其中users是您拥有电子邮件的表

答案 1 :(得分:0)

仅使用唯一|用户敌人无法正常工作。这是我实现的方式:

return [
    'name' => ['required', 'string', 'max:255'],
    'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email,'. Auth::user()->id],
    'roles' => ['required', 'array', 'in:admin,manager,employee,client']            
];