这是我尝试处理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收到的任何响应。

收到错误消息:

php - 如何处理Laravel中重复条目的QueryException-LMLPHP

我究竟做错了什么?如何正确处理异常,最佳做法是什么?

最佳答案

我非常接近我的答案,这全都与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');
            }
        }

出现错误的returnthrow不起作用,但是'dd'方法起作用。因此,这节省了我的时间来查询两次以识别重复项并插入并为之高兴:)

关于php - 如何处理Laravel中重复条目的QueryException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45893359/

10-09 12:54