Laravel улавливает «уникальную» ошибку поля

Я пытаюсь определить при вставке записи с использованием красноречия в 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; 

Здесь вы сможете увидеть, какую ошибку вы получаете, а затем добавить переменную в свою функцию перенаправления (переход к вашему представлению). Это поможет обеспечить читаемость вашего кода, а также хорошую практику.

Посмотрите, поможет ли это.