[Symfony][Doctrine2] PrePersist - zatrzymanie procesu dodawania rekordu |
[Symfony][Doctrine2] PrePersist - zatrzymanie procesu dodawania rekordu |
28.10.2012, 01:46:05
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 22.03.2012 Ostrzeżenie: (0%) |
Witam,
mam jeden problem z którym nie mogę sobie poradzić, mianowicie w modelu zanim zostanie dodany nowy rekord muszę przeprasować zawartość wczytanego pliku.
Jeżeli zawartość pliku ma nieodpowiednią strukturę zostanie wyrzucony wyjątek. I tutaj jest problem, nie mam pojęcia jak zaniechać dodania nowego rekordu w przypadku gdy ten wyjątek się pojawi. Podobnie w przypadku gdy plik nie zostanie poprawnie wczytany, sam return w prepersist nie za wiele mi pomoże gdyż doctrine i tak spróbuje dodać nowy rekord, co spowoduje błąd bo pole "content" w bazie nie może być null. Istnieje możliwość zrobienia tego w modelu czy może jestem skazany na zrobienie tego w kontrolerze? Ten post edytował korniks 28.10.2012, 01:53:47 |
|
|
28.10.2012, 10:32:30
Post
#2
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) |
To powinno być zrobione w walidatorze, zdarzenia prePersist itp. nie do tego służą. Możesz napisać swój customowy lub wykorzystać walidator Callback i stworzyć metodę w modelu, która dokonuje walidacji.
-------------------- |
|
|
28.10.2012, 12:59:48
Post
#3
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 22.03.2012 Ostrzeżenie: (0%) |
Wielkie dzięki za pomoc.
|
|
|
28.10.2012, 13:24:05
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Peter dobrze podpowiada. Od tego jest walidator, by na etapie sprawdzania informować o problemach z polem formularza. Plik też takim jest, więc nie ma problemu. Możesz więc albo własny walidator "popełnić" dla tego pola, albo podpiąć się choćby do któregoś eventu przed walidacją.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
Wersja Lo-Fi | Aktualny czas: 11.06.2024 - 01:41 |