Laravel 5 如何修复Laravel 5.7中的重复输入错误?
我正在使用Laravel 5.7电子邮件中的用户验证系统,该系统运行良好。但当我尝试输入同一封带有验证表单的电子邮件时,它会生成以下消息 SQLSTATE[23000]:完整性约束冲突:1062重复项'mymail@gmail.com'对于键'users\u email\u unique'(SQL:插入'users'('email'、'name'、'address'、'updated\u at'、'created\u at`)值(mymail@gmail.com,班达,西斯尼,2019-05-31 11:32:362019-05-31 11:32:36) 我的用户控制器是这样的Laravel 5 如何修复Laravel 5.7中的重复输入错误?,laravel-5,controller,Laravel 5,Controller,我正在使用Laravel 5.7电子邮件中的用户验证系统,该系统运行良好。但当我尝试输入同一封带有验证表单的电子邮件时,它会生成以下消息 SQLSTATE[23000]:完整性约束冲突:1062重复项'mymail@gmail.com'对于键'users\u email\u unique'(SQL:插入'users'('email'、'name'、'address'、'updated\u at'、'created\u at`)值(mymail@gmail.com,班达,西斯尼,2019-05-3
protected function store(Request $request)
{
$user = new User;
$user->email = $request->input('email');
$user->name = $request->input('name');
$user->address = $request->input('address');
$user->save();
$verifyUser = VerifyUser::create([
'user_id' => $user->id,
'token' => str_random(40)
]);
}
如何解决此问题?由于这似乎也是很常见的,您的
用户
表在电子邮件上似乎有一个唯一的索引,因此,如果您尝试使用已存在的电子邮件创建条目,则出现此错误是正常的
我不确定您想从问题上下文中做什么,但我相信如果您只想创建一个VerifyUser条目,您可以为User使用updateOrCreate()
,并继续使用VerifyUser逻辑,如下所示:
protected function store(Request $request)
{
$email = $request->input('email');
$name = $request->input('name');
$address = $request->input('address');
$user = User::updateOrCreate(['email' => $email], ['name' => $name, 'address' => $address]);
$verifyUser = VerifyUser::create([
'user_id' => $user->id,
'token' => str_random(40)
]);
}
我希望它能有所帮助,因为它看起来很常见,您的用户
表在电子邮件上似乎有一个唯一的索引
,因此,如果您试图用一封已经存在的电子邮件创建一个条目,则出现此错误是正常的
我不确定您想从问题上下文中做什么,但我相信如果您只想创建一个VerifyUser条目,您可以为User使用updateOrCreate()
,并继续使用VerifyUser逻辑,如下所示:
protected function store(Request $request)
{
$email = $request->input('email');
$name = $request->input('name');
$address = $request->input('address');
$user = User::updateOrCreate(['email' => $email], ['name' => $name, 'address' => $address]);
$verifyUser = VerifyUser::create([
'user_id' => $user->id,
'token' => str_random(40)
]);
}
我希望这有帮助实际上,我不想更新我当前的电子邮件地址。我需要将现有电子邮件地址作为新表行添加到数据表中。然后只需从users
表的email
列中删除唯一索引实际上,我不想更新我的当前电子邮件地址。我需要将现有电子邮件地址作为新的表行添加到数据表中。然后只需从用户
表的电子邮件
列中删除唯一索引即可