Gav*_*vin 21 php laravel laravel-4
我试图识别何时在Laravel中使用eloquent插入记录时由于唯一字段错误而抛出异常.
我到目前为止的代码是:
try {
$result = Emailreminder::create(array(
'user_id' => Auth::user()->id,
'email' => $newEmail,
'token' => $token,
));
} catch (Illuminate\Database\QueryException $e) {
return $e;
}
Run Code Online (Sandbox Code Playgroud)
抛出异常OK我只是不知道如何将其识别为列重复错误?
谢谢,
加文.
luk*_*ter 47
我假设你使用MySQL,它可能与其他系统不同
好的,首先,重复条目的错误代码是1062.以下是从异常中检索错误代码的方法:
catch (Illuminate\Database\QueryException $e){
$errorCode = $e->errorInfo[1];
if($errorCode == 1062){
// houston, we have a duplicate entry problem
}
}
Run Code Online (Sandbox Code Playgroud)
在类 Handler 中添加此代码(例外)
if($e instanceof QueryException){
$errorCode = $e->errorInfo[1];
switch ($errorCode) {
case 1062://code dublicate entry
return response([
'errors'=>'Duplicate Entry'
],Response::HTTP_NOT_FOUND);
break;
case 1364:// you can handel any auther error
return response([
'errors'=>$e->getMessage()
],Response::HTTP_NOT_FOUND);
break;
}
}
...
return parent::render($request, $exception);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22031 次 |
| 最近记录: |