В моем проекте с Laravel 5.6 и MongoDB , чтобы проверить мои входные данные в методе обновления, я использую валидатор, как показано ниже,
$validator = Validator::make($request->all(), [
'name' => 'string|max:255',
'phone' => 'string|valid_phone',
'email' => ['string', 'email', 'max:255',
Rule::unique('admins','email')->ignore($id),
],
'password' => 'string|min:6',
'access' => 'numeric',
]);
Iхотите, чтобы поле было уникальным, и игнорируйте тот же адрес электронной почты для пользователя со специальным $id
.
Все выглядит хорошо!Но когда я вызываю свой маршрут, чтобы обновить моего пользователя и передать текущее электронное письмо пользователя как электронное, оно возвращает ошибку валидатора, например,
"email": [
"The email has already been taken."
]
Таким образом, уникальная проверка работала некорректно!
Мне также присвоили $primaryKey='_id';
в моей пользовательской модели.
В чем проблема?Я что-то пропустил?