Laravel が Eloquent の「ユニーク」フィールドエラーをキャッチする 質問する

Laravel が Eloquent の「ユニーク」フィールドエラーをキャッチする 質問する

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
    }
}

おすすめ記事