![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam mały problem z zapisywaniem danych z formularza. Mam 3 pola w formularzu: firstname, middlename, lastname:
W widoku generuję sobie tylko 2 np: firstname i lastname. Ale wcześniej w polu middlename została przypisana dana. Gdy nie wyrendreuje pola formularza, to do bazy zostanie przesłany null. Jak uniknąć przypisania tej zmiennej jeśli nie została wysłana w request ? W skrócie chodzi mi o to, że jak w request nie ma pola 'middlename' to na obiekcie entity nie wywołuje metody np: setMiddlename($middlename); Może wydać się głupie trochę to pytanie ale wcześniej korzystałem z Zend i tam działało bez zarzutów. Pozdrawiam Albo, czy może jest jakaś funkcjonalność do formularza, która pozwala sprawdzić czy dane są prawidłowe ? Jak w Zend była metoda isValid(array $data). |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jest nawet cały dział poświęcony validacji
http://symfony.com/doc/current/book/validation.html Jeżeli nie chcesz wyświetlić w formularzu pola a co za tym idzie nie chcesz aby było zmienione w bazie użyj form eventow i usun pole. -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź, muszę się przyjrzeć tym form event`s bo szczerze mówiąc pierwszy raz o tym słyszę
![]() Ale dalej mam problem z danymi. Jak w tym event`cie sprawdzić jakie dane zostały przesłane a w jakim stanie był obiekt ? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Dane początkowe (ustawione przy tworzeniu formularza) masz dostępne pod $builder->getData(). 2. Jeżeli potrzebujesz dostać się do danych "wysłanych" przez użytkownika w tej metodzie możesz podpiąć się pod zdarzenie FormEvents::PRE_SET_DATA: 3. http://symfony.com/doc/current/cookbook/fo...dification.html Przy czym powyższy scenariusz powinieneś użyć jedynie w przypadku dynamicznych formularzy. Jeżeli już na etapie jego tworzenia wiesz, że nie będziesz potrzebować pola middleName po prostu dodaj dla tego formularz opcję useMiddleName i zareaguj odpowiednio już na etapie początkowego budowania formularza:
Ten post edytował Crozin 28.04.2014, 15:32:45 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Masz ten sam formularz w 2 miejscach
![]() ![]() -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A wszystko to po to aby uniknąć nadpisywania danych, które nie podaliśmy np odwołując się przez AJAX.
Np: mamy tablicę: {firstname: 'MyName'} i żeby nie nadpisywał zmienne [lastname, firstname] dając NULL. W builderze mam formularz z 3 polami, W widoku np wyświetlam wszystkie 3 pola i jest git. Ale gdy za pomocą AJAX wyślę tylko 1 to żeby pozostałe dane nie zostały naruszone. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:20 |