管理员用户更改了唯一的电子邮件约束

时间:2017-12-12 00:33:38

标签: laravel laravel-5.5

我在请求中使用唯一规则,以确保不会输入重复的电子邮件。

查看Laravel文档,我看到了如何忽略发布用户的电子邮件,但是有权对用户进行更改的管理员又如何呢?我仍然想检查唯一性,但是跳过被修改的用户的电子邮件而不是管理员电子邮件。

我能以任何方式做到这一点吗?

1 个答案:

答案 0 :(得分:1)

您只需要传递您要修改的用户的id

让我们在您的控制器中说出

public function update(UserRequest $request, $id) {
    ...
}

然后在您的UserRequest中,您可以使用

检索路线参数$id
public function rules() {
    $id = $this->route('id') ?: 0;

    return [
        'email' => "required|unique:users,email,{$id}",
    ];
}