我有两种类型的用户 - 真实和虚假。
假用户是员工,不使用系统。
真实用户使用他们的电子邮件地址登录。所以我的用户迁移有$table->string('email')->unique();
。
问题是虚假用户可能没有电子邮件地址。我可以添加第一个假用户没问题,但第二个生成错误SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'users_email_unique'
。
我该怎么办?
答案 0 :(得分:1)
users_email_unique
之类的声音是您的主要关键。这意味着当您使用空白电子邮件地址插入第一个假用户时,空白条目将被计为唯一条目。输入第二个空白条目时,它违反了实体完整性(重复的主键)。
users_email_unique unique?
_________________ _______
email@email.com yes
blank yes
blank no
如果您想要多个空白条目,则可以允许users_email_unique
为null
,但主键列为cannot contain null
values:
users_email_unique unique?
__________________ ________
email@email.com yes
NULL yes
NULL yes
如果您使用users_email_unique
作为主键,那么正如评论中所指出的那样,您可能需要:
答案 1 :(得分:0)
您可以采取两种方式:
(最终你可以暂时使用第二种解决方案然后转到第一种方法)
答案 2 :(得分:0)