私のモデルでは、現在ORMにRedBeanを使用しています。ORM(RedBean)と重複キー
カラムの1つが一意に設定されているMySQLテーブルにデータを挿入する必要があります。
現在、データはそうのようなフォームから挿入されている:
//Create
$object = R::dispense('object');
//Need to check if supplied name is a duplicate
$object->name = $name
$object->description = $description
//Save
R::store($object)
今の問題は、$名がデータベースに複製されなかった場合は、すべてがうまくいくということです。それが重複している場合は、私は例外をキャッチし、SQLエラー・コードを取得することができます:私は例外をエコー場合は23000
を、私が手:
[23000] - SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'abc' for key 'name_UNIQUE'
もう一つの問題は、私は複数のフィールドを持っている場合であるということですUNIQUEに設定すると、例外は重複している最初のフィールドのみを通知します。したがって、次のフィールドを取得するには、ユーザーが最初の複製を修正してからクエリを再度実行する必要があります。
これは非常に非効率的なようです。あまりにも多くのSQL文を実行しないで、複数のフィールドに重複データを挿入したかどうかを確認する必要があります。
これを行うためのベストプラクティスは何ですか?アクションが成功したのか、失敗したのか、なぜ、そしてどのフィールドがコントローラに戻ったのかを返すことについては、ベストプラクティスは何ですか?
ありがとうございました:)