如何更新 Laravel 集合中的唯一字段?

How to update unique field in Laravel collective?

我有一个用户管理面板,管理员可以在其中创建更新用户,而用户有一个独特的电子邮件字段。当我不想更改电子邮件地址时进行更新时,它应该保持原样。但抛给我这样的错误: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}'

我在这里缺少什么? 请帮忙

如果用户只更改姓名字段而不更改电子邮件字段,您不希望抛出验证错误,因为用户已经是电子邮件地址的所有者。

你可以像这样使用:

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

阅读强制唯一规则忽略给定 ID 部分: LINK