Mit*_*tsa 2 php mysql error-handling exception laravel
这是我尝试处理的模型代码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');
}
}
}
Run Code Online (Sandbox Code Playgroud)
调用控制器代码如下所示: $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');
}
}
Run Code Online (Sandbox Code Playgroud)
return和throw错误没有用,但 'dd' 方法有效。因此,这节省了我两次查询以识别重复项并插入的时间,并为此感到高兴:)
| 归档时间: |
|
| 查看次数: |
13356 次 |
| 最近记录: |