Laravel 捕捉 Eloquent “独特"字段错误

2022-01-08 00:00:00 php laravel laravel-4

我正在尝试识别在 Laravel 中使用 eloquent 插入记录时由于唯一字段错误而引发异常时.

I am trying to identify when inserting a record using eloquent in Laravel when it throws an exception because of a unique field error.

我目前的代码是:

try {

    $result = Emailreminder::create(array(
                       'user_id' => Auth::user()->id,
                       'email' => $newEmail,
                       'token' => $token,
              ));

} catch (IlluminateDatabaseQueryException $e) {
    return $e;
}

它抛出一个异常好吧我只是不知道该怎么做才能将其识别为列重复错误?

It throws an exception OK I just don't know what to do to identify it as a column duplicate error?

谢谢,

加文.

推荐答案

我假设你使用 MySQL,其他系统可能不同

好的,首先,重复的错误代码条目是 1062.以下是您从异常中检索错误代码的方法:

Okay first, the error code for duplicate entry is 1062. And here's how you retrieve the error code from the exception:

catch (IlluminateDatabaseQueryException $e){
    $errorCode = $e->errorInfo[1];
    if($errorCode == 1062){
        // houston, we have a duplicate entry problem
    }
}

相关文章