![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 576 Pomógł: 14 Dołączył: 9.11.2005 Ostrzeżenie: (20%) ![]() ![]() |
Jak mogę w symfony 1.2 ustawić setError ?
Jak mogę zrobić walidacje wysokosci i szerokosci obrazka ? dopisac do sfFileValidator kod odpowiedzialny za to czy w jakis inny sposób ? Ten post edytował Lonas 20.03.2009, 13:17:59 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
walidacje obrazka musisz zrobić samemu. wydaje mi się, że można to zrobić tak: tworzysz swoją klasę walidacji np. myValidatorFile tam nadpisujesz metodę doclean. w niej wykonujesz nadrzędną metodę doclean, sprawdzasz zapisany plik i jego rozmiary, jeżeli są za duże czy nie dozwolone to zwracasz wyjątek throw new sfValidatorError |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 576 Pomógł: 14 Dołączył: 9.11.2005 Ostrzeżenie: (20%) ![]() ![]() |
Znalazlem gotowa klase ale nie dla symfony 1.2 moze to przerobie
http://snippets.symfony-project.org/snippet/259 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 576 Pomógł: 14 Dołączył: 9.11.2005 Ostrzeżenie: (20%) ![]() ![]() |
Nie wiem czemu jak próbuje tego użyc to wywala błąd :
sfFileImageValidator does not support the following options: 'max_width'.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
To dlatego, że walidator podczas konfigurowania nie dodaje (rejestruje) takiej opcji. Musisz w metodzie sfFileImageValidator::configure(), dodać te opcje:
Tak samo jest z wiadomościami. Ten post edytował destroyerr 20.03.2009, 14:28:04 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 576 Pomógł: 14 Dołączył: 9.11.2005 Ostrzeżenie: (20%) ![]() ![]() |
Faktycznie dzięki - zrobiłem jak piszesz tyle że walidator nie działa - nie wyświetla komunikatu o błędzie
opcje dodałem do klasy sfValidatorFile Ten post edytował Lonas 20.03.2009, 14:43:21 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Po części mój błąd, bo domyślam się, że tego nie zrobiłeś: parent::configure($options, $messages). Jeśli nadal nie działa jak powinno, to bez kodu nic nie zrobimy.
Po drugie, nie wiem czemu akurat dodałeś opcje do sfValidatorFile. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 576 Pomógł: 14 Dołączył: 9.11.2005 Ostrzeżenie: (20%) ![]() ![]() |
Zrobiłem ale też nie działo :/ walidator wygląda tak :
walidacja
Wrzucajac zdjecie na serwer w ogole nie ma walidacji szerokosci tego pliku |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jako, że tytuł wątku i pośrednio tematyka bardzo mi pasuje to się podłączę. Jak przekazać do formularza dodatkowe błędy?
Sytuacja jest następująca. Mam formularz rozszerzający sfFormPropel. Po wykonaniu validacji formularza chciałbym wykonać trochę logiki w kontrolerze, w którym jest on zawarty. Robię sobie zwykłe $form->save(). Jeśli zapis wywoła wyjątek to sfFormPropel::save() propaguje ten wyjątek. A ja chciałbym jego treść przekazać jako jeden z błędów formularza.
W 28 linii jestem zmuszony przekazywać błąd do widoku poza formularzem. Wiem, że w zasadzie błędy formularza to logicznie co innego niż błędy wynikające z logiki biznesowej ale chciałbym użyć mechanizmów formularza żeby te błędy wyświetlić. Ot taka neichęc do dublowania kodu. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 576 Pomógł: 14 Dołączył: 9.11.2005 Ostrzeżenie: (20%) ![]() ![]() |
No własnie w symfony 1.0, 1.1 było prosto setError i chyba tyle :/
|
|
|
![]()
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
No własnie w symfony 1.0, 1.1 było prosto setError i chyba tyle :/ Wyrzucenie błędów z sfRequest to akurat dobra decyzja. Było to wygodne ale jakoś mnie to kuło w oczy.Pozostała jednak luka bo błędy związane z formularzami zostały załatwione. Na błędy związane z logiką nie ma pomysłu. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
@Lonas, walidator nie działa z prostej przyczyny. Metoda execute nigdy nie zostanie wykonana. Zajrzyj do książki o formularzach, powinno coś byc.
@mike, co do Twojego problemu to jest to dłuższa historia. Nie wiem jak wygląda u Ciebie metoda processForm, domyślam się, że standardowo tylko wtedy powstaje problem. Ty masz wynik tej metody w warunku i po prostu nie wiem. Wiec zakładam, że jest to metoda wygenerowana:
Szkorzystałem z sfValidatorInteger, ponieważ nie wiem jaki błąd masz, pewnie jakiś od bazy ale to już sobie sam rozwiążesz. Najlepiej chyba będzie nadpisać klase sfValidatorError i to tak, żeby w konstruktorze nie trzeba było podawać obiektu walidatora. |
|
|
![]()
Post
#14
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
@mike, co do Twojego problemu to jest to dłuższa historia. Nie wiem jak wygląda u Ciebie metoda processForm (...) Bindowanie parametrów żądania z polami formularza i wykonanie isValid(), które to jest zwracane jako rezultat działania funkcji.(...) nie wiem jaki błąd masz, pewnie jakiś od bazy ale to już sobie sam rozwiążesz. Najlepiej chyba będzie nadpisać klase sfValidatorError i to tak, żeby w konstruktorze nie trzeba było podawać obiektu walidatora. 1. Błęd to powiedzmy: baza strzeliła focha :-)2. No właśnie te validatory w konstruktorze całkowici mi są nie na rękę :-) Faktycznie napisanie swojej klasy błędów będzie niezłym pomysłem a do konstruktora będę pchał neutralnego sfValidatorPass z komunikatem invalid. Dzięki ~destroyerr. Kliknąłbym Ci pomógł ale i nie mój wątek, i uprawnień moda się wybyłem :-) Ten post edytował mike 23.03.2009, 13:19:07 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 576 Pomógł: 14 Dołączył: 9.11.2005 Ostrzeżenie: (20%) ![]() ![]() |
To ja klikne za Ciebie ;-)
destroyerr : Na stronie autor tej klasy podaje że wystarczy utworzyć plik yml ? chyba że jest jakaś różnica w działaniu tego walidatora w symfony 1.1 i 12 ? http://snippets.symfony-project.org/snippet/259 Ten post edytował Lonas 23.03.2009, 13:38:18 |
|
|
![]()
Post
#16
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 576 Pomógł: 14 Dołączył: 9.11.2005 Ostrzeżenie: (20%) ![]() ![]() |
Czyli dokumentacja niby do 1.2 też nieaktualna ?
http://www.symfony-project.org/book/1_2/10...ustom_validator |
|
|
![]()
Post
#18
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Czyli dokumentacja niby do 1.2 też nieaktualna ? Niestety tak.http://www.symfony-project.org/book/1_2/10...ustom_validator Rozwiązanie mojego problemu to 3 klasy:
Obecnie moje klasy formularzy dziedziczą po sfFormProcessable (lub po sfFormPropelProcessable ) dzięki temu mogę zrobić po prostu:
A błędy wyświetlą się w formularzu. Ten post edytował mike 23.03.2009, 14:12:28 |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 576 Pomógł: 14 Dołączył: 9.11.2005 Ostrzeżenie: (20%) ![]() ![]() |
Czy to powinno być coś w ten deseń ?
Ten post edytował Lonas 23.03.2009, 14:17:43 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Mniej więcej coś takiego, tylko klasa wyjątku to sfValidatorError. Zerknij na inne walidatory, to będziesz wiedział jak to zrobić.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 21:13 |