我想使用Facebook、Google 和 Twitter 帐户创建登录表单。第一步,我可以使用 Socialite Package 创建它们。第二步,我可以获取用户信息并将其插入MySQL 数据库。我的问题是我第一次使用facebook 帐户成功登录,然后注销了。之后我用 google 帐户登录。错误发生如下:
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
。只需存储该电子邮件即可。再次登录时,只需检查具有相同电子邮件地址的用户是否已存在。如果没有,只需输入值,否则登录用户。
关于php - Laravel 5.1 登录多社交网络,将 Socialite 插入同名字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32707754/