![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 2 Dołączył: 15.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
Mam problem ze zrzuceniem wyjątku. W modelu mam funkcję save, oto jej ciało:
Chcę zrzucić wyjątek, gdy podczas zapisywania wystąpi naruszenie unikalności jakiegoś pola w tabeli, np title. No i nie wiem gdzie wrzucić throw new Exception('wiadomosc'); Próbowałem sprawdzenie, czy $result->execute() zwróci coś innego niż true, ale nie działa. Wciąż przy wyłapywaniu wyjątku dostaję wiadomość, jakbym w ogóle throw new Exception nie umieśił w Modelu. Cytat SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'mmmmmmmmmmm' for key 'title' Kod w kontrolerze:
W widoku, wiadomo, wyświetlam komunikat wyjątku. edit: Teraz już nie wiem, czy w ogóle mogę własny komunikat wysłać, w manualu znalazłem, że nie powinno się jawnie zrzucać wyjątków klasy PDOException (IMG:style_emoticons/default/sciana.gif) Ale nie wychodziło nawet z Exception. Ten post edytował Piotrbaz 23.03.2013, 09:13:41 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Rozwiązanie z UNIQUE jest prostsze, ale skoro to napisałeś, znaczy że gorsze. Dlaczego ? Chyba źle zrozumiałeś. Klucz typu UNIQUE ma nadal pozostać . Po prostu zamiast:
Cytat Wyjątki PDO mają sobą reprezentować jakieś problemy z samym połączeniem z bazą danych i właściwie tylko "wnętrzności" PDO powinny rzucać wyjątek tego typu. Twoje wyjątki nie mają z tym nic wspólnego.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 11:30 |