Если вы пытаетесь гарантировать уникальный адрес электронной почты, правило будет следующим:
Validator::make($data, [
'email' => [
'required',
Rule::unique('users')->ignore($user->id),
],
]);
Если ваше поле не email
в таблице пользователей, сделайте следующее:
Validator::make($data, [
'email' => [
'required',
Rule::unique('users', 'column_name')->ignore($user->id),
],
]);
Наконец, если ваш уникальный идентификатор в таблице пользователей не равен id
, тогда сделайте:
Validator::make($data, [
'email' => [
'required',
Rule::unique('users', 'column_name')->ignore($user->id, 'unique_key_name'),
],
]);
Чтобы использовать ваш код напрямую, он будет выглядеть следующим образом:
$this->validate($request, [
'username' => [
'required',
'max:30',
Rule::unique('users')->ignore($user->id)
]
]);
изменения, которые я сделал, были обязательными, и максимальное правило должно быть разделено, а все правила должны быть в массиве.Я также изменил таблицу с user
на users
, так как это значение по умолчанию для Laravel.
См. Документы в https://laravel.com/docs/master/validation#rule-unique