Я пытаюсь определить при вставке записи с использованием красноречия в Laravel, когда он выдает исключение из-за уникальной ошибки поля.
Код, который у меня есть до сих пор:
try { $result = Emailreminder::create(array( 'user_id' => Auth::user()->id, 'email' => $newEmail, 'token' => $token, )); } catch (Illuminate\Database\QueryException $e) { return $e; }
Он выбрасывает исключение. ОК, я просто не знаю, что делать, чтобы идентифицировать его как дублируемую ошибку столбца?
Благодаря,
Гэвин.
Я предполагаю, что вы используете MySQL, он, вероятно, отличается для других систем
Сначала сначала код ошибки для дублирования записи – 1062 . И вот как вы извлекаете код ошибки из исключения:
catch (Illuminate\Database\QueryException $e){ $errorCode = $e->errorInfo[1]; if($errorCode == 1062){ // houston, we have a duplicate entry problem } }
Попробуй это:
echo "<pre>"; print_r($result->errors()); echo "</pre>"; exit;
Здесь вы сможете увидеть, какую ошибку вы получаете, а затем добавить переменную в свою функцию перенаправления (переход к вашему представлению). Это поможет обеспечить читаемость вашего кода, а также хорошую практику.
Посмотрите, поможет ли это.