Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Transformacja danych przed zapisem
mundeck
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 2.09.2012

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


Chciałbym przed zapisem danych z formularza w Symfony przekształcać je do odpowiedniego formatu. Przykładowo, jeśli użytkownik wpisze numer telefonu "123-123-123" to w bazie powinno być zapisane: "+48123123123". Próbowałem zastosować CallbackTransformer wg dokumentacji, ale to raczej służy formatowaniu w polach formularza, a nie w celu zapisania do bazy. Oczywiście mógłbym stworzyć sobie serwis i wrzucać sobie do niego wartość tego pola, ale czy są może jakieś lepsze, wbudowane w SF rozwiązania?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mundeck
post
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 2.09.2012

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


Pierwszy raz słyszę o takim rozwiązaniu. Nie wiedziałem, że ustawianie encji jako domyślnej klasy formularza jest niezalecane. Na ile zrozumiałem to co jest w dokumentacji (przykład z TaskType) to wlaśnie dzięki temu wszystko odbywa się szybciej i łatwiej, bo nie trzeba zapisywac osobno, ręcznie każdego pola, ani tworzyć tych dodatkowych klas. Myślałem, że taką klasą obsługującą formularz jest już po prostu Form Type.

Tymczasem jednak mam spory problem - dość skomplikowany formularz, który działał dobrze, dopóki nie wziąłem się za walidację. Jedne jego części (embedded forms) są wyświetlane lub nie w zależności od opcji wybranych we wcześniejszych polach (steruje tym jquery), tak samo niektóre dalsze pola są włączane i wyłączane w zależności od wyboru. Myślałem, że jeśli wyłącze pola tej składowej formularza, która jest chowana to ominę walidację, ale tak się nie dzieje. W efekcie schowana część formularza jest walidowana i formularz nie przechodzi, bo nic tam nie było wpisane.

Szczerze mówiąc mam wrażenie, że o ile dla prostych formularzy typu "zapisz notkę na blogu" komponent Form działa prosto, intuicyjnie i szybko można go ogarnąć, o tyle dla bardziej skomplikowanych formularzy przysparza on więcej problemów niż korzyści i szybciej bym zrealizował zakładaną funkcjonalność korzystając tylko z czystego HTML-a i logiki zawartej w kontrolerze.
Go to the top of the page
+Quote Post
ohm
post
Post #3





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

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


Cytat(mundeck @ 20.04.2017, 17:59:29 ) *
Tymczasem jednak mam spory problem - dość skomplikowany formularz, który działał dobrze, dopóki nie wziąłem się za walidację. Jedne jego części (embedded forms) są wyświetlane lub nie w zależności od opcji wybranych we wcześniejszych polach (steruje tym jquery), tak samo niektóre dalsze pola są włączane i wyłączane w zależności od wyboru. Myślałem, że jeśli wyłącze pola tej składowej formularza, która jest chowana to ominę walidację, ale tak się nie dzieje. W efekcie schowana część formularza jest walidowana i formularz nie przechodzi, bo nic tam nie było wpisane.


A korzystasz z form eventsów?

Cytat(mundeck @ 20.04.2017, 17:59:29 ) *
Szczerze mówiąc mam wrażenie, że o ile dla prostych formularzy typu "zapisz notkę na blogu" komponent Form działa prosto, intuicyjnie i szybko można go ogarnąć, o tyle dla bardziej skomplikowanych formularzy przysparza on więcej problemów niż korzyści i szybciej bym zrealizował zakładaną funkcjonalność korzystając tylko z czystego HTML-a i logiki zawartej w kontrolerze.

Też kiedyś tak myślałem (IMG:style_emoticons/default/wink.gif) Ale z czasem przyszła praktyka i teraz się tworzy i waliduje mi się duuużo szybciej formularze niż miałbym dłubać je ręcznie.


Co do samego transformera z domyślną wartościa, to możesz rzucić jakimś kodem?
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 09:25