Я хотел бы создать форму входа, используя учетные записи в facebook, google и twitter. Первый шаг, я могу создать их с помощью Социальный пакет. Второй шаг, я могу получить информацию о пользователе и вставить в База данных MySQL. Моя проблема в том, что я успешно вошел в систему, используя аккаунт в Фэйсбуке в первый раз, а затем я выхожу. После этого я захожу с гугл аккаунт вместо. Ошибка произошла так:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'users_email_unique' (SQL: insert into `users` (`name`, `updated_at`, `created_at`) values (SrengKhorn, 2015-09-22 02:44:26, 2015-09-22 02:44:26))
И я обнаружил, что если я удаляю предыдущую запись с тем же именем пользователя, я могу войти в систему с любой из них без ошибок. Знаете ли вы, чтобы решить эту проблему?
Что ж. Логика очень проста. Вы пытаетесь вставить пустое письмо. И да, не удивительно, электронная почта — это уникальное поле. Пустое письмо не может быть вставлено, поскольку оно повторяется. Так что просто добавьте письмо, когда вы пытаетесь войти в систему пользователя. Вы можете использовать $user->email
, Просто сохраните это письмо. И в то время как снова входя в систему, просто проверьте, существует ли пользователь с тем же адресом электронной почты. Если нет, просто введите значения, иначе войдите в систему пользователя.
Других решений пока нет …