Почему я получаю сообщение об ошибке «Дубликат записи» для электронного письма, которого нет в моей базе данных приложенPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Почему я получаю сообщение об ошибке «Дубликат записи» для электронного письма, которого нет в моей базе данных приложен

Сообщение Anonymous »

Я работаю над проектом Laravel и столкнулся со странной проблемой при попытке вставить нового пользователя в таблицу пользователей. Я вижу следующую ошибку:

Код: Выделить всё

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'sahan12@gmail.com' for key 'users_email_unique'
Странно, что когда я запрашиваю базу данных, я не могу найти ни одного пользователя с адресом электронной почты «sahan12@gmail.com». Вот еще немного контекста:
  • Я использую миграцию для создания таблицы пользователей, а столбец электронной почты настроен как уникальный.
  • Я также использовал сеялку Laravel для создания поддельных данных в этой таблице перед попыткой вставки.
Вот миграция для таблицы пользователей:

Код: Выделить всё

Schema::create('users', function (Blueprint $table) {
$table-\>id();
$table-\>string('name');
$table-\>string('email')-\>unique();
$table-\>string('user_name')-\>unique()-\>nullable();
$table-\>string('phone')-\>unique()-\>nullable();
$table-\>timestamp('email_verified_at')-\>nullable();
$table-\>string('password');
$table-\>rememberToken();
$table-\>enum('role', \['student', 'teacher', 'admin'\]);
$table-\>boolean('is_active')-\>default(1);
$table-\>timestamps();
$table-\>softDeletes();
});
Вот мои правила проверки:

Код: Выделить всё

 public function rules(): array
{
$rules = [

'user_name' => [
'nullable',
'string',
Rule::unique('users', 'user_name'),
],
'email' => [
'required',
'email',
Rule::unique('users', 'email'),
],
];

return $rules;
}
Я попробовал запросить таблицу пользователей напрямую с помощью Laravel

Код: Выделить всё

DB::table('users')->where('email', 'sahan12@gmail.com')->first()
чтобы узнать, существовала ли уже запись с этим адресом электронной почты. Я ожидал найти либо соответствующую запись, либо вообще не найти результатов. Однако запрос вернул значение null, что указывает на то, что ни один пользователь с этим адресом электронной почты не существует, однако ошибка «Дубликат записи» сохраняется при попытке вставить новую запись.
Мои вопросы:
  • Почему Laravel/MySQL выдает ошибку «Дубликат записи» для электронного письма, которое, по-видимому, не существует в базе данных?
  • Как я могу устранить или решить эту проблему?
Я очень застрял в этом вопросе и буду признателен за любую помощь или подсказки!

Подробнее здесь: https://stackoverflow.com/questions/788 ... xist-in-my
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»