Laravel で eloquent を使用してレコードを挿入するときに、一意のフィールド エラーが原因で例外がスローされるかどうかを識別しようとしています。
これまでのコードは次のとおりです。
try {
$result = Emailreminder::create(array(
'user_id' => Auth::user()->id,
'email' => $newEmail,
'token' => $token,
));
} catch (Illuminate\Database\QueryException $e) {
return $e;
}
例外がスローされますが、これを列重複エラーとして識別するにはどうすればいいのかわかりません。
ありがとう、
ギャビン。
ベストアンサー1
MySQLを使用していると仮定しますが、他のシステムでは異なる可能性があります
まず、エラーコード重複エントリは 1062 です例外からエラー コードを取得する方法は次のとおりです。
catch (Illuminate\Database\QueryException $e){
$errorCode = $e->errorInfo[1];
if($errorCode == 1062){
// houston, we have a duplicate entry problem
}
}