Autor Zpráva
CarlosK
Profil *
Dobrý den, dají se v Doctrine 2 odchytit výjimky, které vzniknou při pokusu vložit duplicitní data do unikátní tabulky? Nebo se v Doctrine 2 ošetřují chyby úplně jinak?

Při pokusu o zapsání do databáze je vyhozena tato výjimka:
PDOException #23000
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'test' for key 'username'

Děkuji
Majkl578
Profil
S odchytáváním výjimek není problém. Jediné, na co je třeba pamatovat, že bys po výjimce nikdy neměl používat původní instanci EntityManageru - měl bys jej zavřít a vytvořit nový. Je to zmíněno i v dokumentaci.
CarlosK
Profil *
Děkuji. Řeším problém, že pokud při registraci uživatel zadá uživatelské jméno nebo e-mail, který už v databázi existuje, tak mu to nemohu oznámit. Pokud bych odchytával PDOException, tak nezjistím rozdíl mezi duplicate entry pro tabulku username, nebo email. Není nějaký způsob jak tohoto docílit? Doctrine 2 používám zatím jen krátce, takže se omlouvám za možná hloupý dotaz.
snake.aas
Profil
Dá se to řešit odchycením pdoexception a kontrolou chybového kódu, ale pokud použiješ jiný typ DB (např oracle s OCI8 driverem), tak to samozřejmě nebude fungovat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: