如何在Laravel集体中更新唯一字段?

时间:2019-01-09 09:20:07

标签: php laravel validation laravelcollective

我有一个用户管理面板,管理员可以在其中创建更新用户,并且用户具有唯一的电子邮件字段。在更新时,如果我不想更改电子邮件地址,则应保持原样。但会向我抛出类似The email has already been taken.

的错误

我已经尝试过:

  1. How to prevent insert email if already exist with specific id in laravel?

  2. https://laravel.com/docs/5.2/validation#rule-unique

和我的用户模型规则

'email' => 'required|unique:users,email,{$user->id}'

我在这里想念什么? 请帮助

1 个答案:

答案 0 :(得分:1)

如果用户仅更改名称字段而不是电子邮件字段,则您不希望引发验证错误,因为用户已经是电子邮件地址的所有者。

您可以这样使用:

'email' => [
        'required',
        Rule::unique('users')->ignore($user->id),
],

在“ 强制使用唯一规则忽略给定ID”部分下阅读: LINK