Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF] Zend_Form - jak dodać własnego errora ?
kosmowariat
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 17
Dołączył: 18.07.2007
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Rozważmy przykładową sytuacje: mamy rejestrację użytkowników. W bazie mamy unique na emailu. Robimy formularz z walidacją. Użyszkodnik próbuje się zarejestrować, podał dane, walidacja powiodła się, ale stwierdziłem w wyniku dalszych działań że email istnieje już w bazie i trzeba wybrać inny. Teraz chciałbym żeby wyświetlić znowu formularz i dodać w nim odpowiednią informację (jako error pod polem z emailem). Problem mam już po części rozwiązany, aczkolwiek rozwiązanie to średnio mi się podoba. Z góry dzięki za podpowiedzi ;-)
Go to the top of the page
+Quote Post
Sabistik
post
Post #2


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


W tym przypadku pasuje tu napisanie własnego walidatora.
Go to the top of the page
+Quote Post
kosmowariat
post
Post #3





Grupa: Zarejestrowani
Postów: 235
Pomógł: 17
Dołączył: 18.07.2007
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Dziękuję za odpowiedź, to jest właśnie to "moje rozwiązanie". Byłbym wdzięczny gdyby ktoś znał jakąś alternatywę dla tego rozwiązania ;]
Go to the top of the page
+Quote Post
pawella
post
Post #4





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.12.2005

Ostrzeżenie: (0%)
-----


A co konkretnie nie podoba ci się w tym "Twoim rozwiązaniu"


Jeżeli napisałeś własny validiator dziedzicząc po Zend_Validate_Abstract, to raczej prościej szybciej i wygodniej już nie można. :-)

Pozdrawiam pawella
Go to the top of the page
+Quote Post
Sabistik
post
Post #5


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


No to możesz jeszcze użyć dekoratora 'Description' i po sprawdzeniu poprawności danych w formie, sprawdzać występowanie maila. W razie niepowodzenia dodawać odpowiednią informacje do description.
Go to the top of the page
+Quote Post
kosmowariat
post
Post #6





Grupa: Zarejestrowani
Postów: 235
Pomógł: 17
Dołączył: 18.07.2007
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Cytat(pawella @ 31.03.2008, 10:16:21 ) *
A co konkretnie nie podoba ci się w tym "Twoim rozwiązaniu"
Jeżeli napisałeś własny validiator dziedzicząc po Zend_Validate_Abstract, to raczej prościej szybciej i wygodniej już nie można. :-)

Pozdrawiam pawella


Nie wszystko można ładnie w ten sposób załatwić. Np, przy pisaniu logowania praktycznie całą logikę trzeba upchnąć w walidatorach, co wg mnie nie jest najpiękniejszym rozwiązaniem.
Go to the top of the page
+Quote Post
pawella
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.12.2005

Ostrzeżenie: (0%)
-----


Nie wiem, może to głupia propozycja
a może trzeba by było stworzyć uniwersalny walidiator przyjmujący w opcja nazwę metody
statycznej user::exists() ktora w przypadku niepowodzenia zwraca kod błędu.

  1. <?php
  2. $formElement->addValidator('callClass',false,array('user::exists','user::costam'));
  3. ?>


A treść komunikatu załatwić Zend_Translate



Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 12:51