jquery - “SQLSTATE [23000]:违反完整性约束:1062 重复条目
问题描述
我正在使用 AJAX 提交表单,并且在网络中我收到此错误。
"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'k@t.com' for key 'users_email_unique' (SQL: insert into `users` (`name`, `email`, `active`, `verify`, `user_type`, `password`) values (K, k@t.com, 2, , 3, $2y$10$FiwHZB1VKWo0skjrCn/16epQq5aqfwdQ055PZLebaK4XEyQFNuDai))"
我正在使用 Laravel 5.6 以及迁移。这是此表的迁移。
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->tinyInteger('user_type');
$table->tinyInteger('active');
$table->rememberToken();
$table->timestamps();
$table->index('user_type');
$table->index('active');
});
而且,这是我的控制器的功能。
public function teacherApply(Request $request)
{
if (Input::get()) {
$data = Input::get();
$email_check = User::where(['email' => $data['email'], 'active' => 1])->first();
if (!empty($email_check))
{
return ["status" => 3, "message" => "Email already registered"];
}
else
{
$required_points = [
'name' => 'required',
'firstName' => 'required',
'lastName' => 'required',
'email' => 'required',
'contact' => 'required',
'password' => 'required',
'degree' => 'required',
'field' => 'required',
'about' => 'required'
];
$validator = Validator::make($request->all(), $required_points);
if ($validator->fails()) {
return response()->json(['errors'=>$validator->errors(),'status' => 2]);
}
$name = $data['name'];
$file_name = 'Empty';
$file = Input::file('image');
if(!empty($file))
{
$destination = base_path('public/pmc_assets/teacher-samples');
$file_name = upload_file($file, $destination);
}
$userID = User::insertGetId([
'name' => $name,
'email' => $data['email'],
'active' => 2,
'verify' => '',
'user_type' => config('constant.teacher'), // Teacher
'password' => bcrypt($data['password']),
]);
TeacherRequests::insert([
'name' => $data['firstName']." ".$data['lastName'],
'phone' => $data['contact'],
'skype' => $data['skype'],
'user_id' => $userID,
'degree_type' => $data['degree'],
'degree_field' => $data['field'],
'about' => $data['about'],
'sample' => $file_name,
'resume' => '',
'active' => 2,
'approved' => 0,
'created_at' => Carbon::now()
]);
//send_to_flock_channel($name,"Manual","Teacher");
return ["status"=> 1, "user_id" => $userID, "email" => $data['email']];
}
}
return view('teacher.apply_teacher');
}
我的文件上传成功,并且数据已插入数据库,但仍然出现此错误。这对我没有影响,但想解决吗?
解决方案
在迁移文件 $table->string('email')->unique(); 电子邮件 ID 具有唯一密钥,您可以删除唯一密钥
或者
您需要处理像 'email' =>'required|unique:users'而不是'email' => 'required'这样的验证
或者
更改查询如下 $email_check = User::where(['email' => $data['email'])->first();
推荐阅读
- javascript - 此语句中关于 splice 的 javascript 语法问题 -> copy.push(array.splice(i,1)[0])
- javascript - react prop 更改时重新请求数据
- reactjs - 如何在反应中访问表列值
- java - 在使用 testng 进行测试时,我想为单独的类创建单独的 jvm。Iit 给出 ExecutionException Error 在启动 fork 错误时发生
- python - 如何在python中合并字符串与重叠字符?
- java - 尝试使用 LinkedList 解决 Top K 频繁元素
- typescript - 如何解决 mapStateToProps 函数的类型错误
- php - 在通过 phpspreadsheet 导入期间,出现“未定义索引 $”错误
- php - 在 Codeigniter 上使用 HIghcharts 获取数据名称和总数
- sql - 想要将一个表的列连接到另一个表,但我没有任何公共字段