2015-09-22 2 views
0

Я хотел бы создать форму для входа с помощью учетных записей facebook, google и twitter. Первый шаг, я могу создать их, используя Socialite Package. Второй шаг, я могу получить информацию о пользователе и вставить в База данных MySQL. Моя проблема заключается в том, что я успешно подключаюсь с помощью счета facebook, а затем я выхожу из системы. После этого я запишу с помощью google account. Ошибка как это:Laravel 5.1 login Multi Social Network with Socialite insert в одно и то же имя

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)) 

Вот мой users стол: enter image description here

И я обнаружил, что если удалить предыдущую запись с тем же именем, я могу войти с любой из них без ошибок. Вы знаете, чтобы решить эту проблему?

ответ

1

Хорошо. Логика очень проста. Вы пытаетесь вставить пустое электронное письмо. И да, не удивительно, электронная почта - уникальное поле. Пустое письмо не может быть вставлено, поскольку оно повторяется. Поэтому просто добавьте электронное письмо, пока вы пытаетесь войти в систему. Вы можете использовать $user->email. Просто сохраните это письмо. И еще раз войдите в систему, просто проверьте, существует ли пользователь уже с тем же адресом электронной почты. Если нет, просто поместите значения, иначе войдите в систему.

Смежные вопросы