这是我尝试处理duplicate entries
的模型代码:
$userData = ['name' => $name, 'email' => $email, 'password' => $password];
public function addUser($userData) {
try {
DB::table('users')->insert($userData);
} catch (QueryException $e) {
$errorCode = $e->errorInfo[1];
if($errorCode == 1062){
throw ('Duplicate Entry');
}
}
}
调用 Controller 代码如下:
$userModel->addUser($userData);
在这里,我不尝试打印从
model
收到的任何响应。收到错误消息:
我究竟做错了什么?如何正确处理异常,最佳做法是什么?
最佳答案
我非常接近我的答案,这全都与namespace
问题和错误显示问题有关:Illuminate\Database\QueryException $e
应为:
\Illuminate\Database\QueryException $e
try {
DB::table('users')->insert($userData);
} catch(\Illuminate\Database\QueryException $e){
$errorCode = $e->errorInfo[1];
if($errorCode == '1062'){
dd('Duplicate Entry');
}
}
出现错误的
return
和throw
不起作用,但是'dd'方法起作用。因此,这节省了我的时间来查询两次以识别重复项并插入并为之高兴:)关于php - 如何处理Laravel中重复条目的QueryException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45893359/