![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Hej kolejny odcinek mojego cyklu "poznaję Symfony". Tym razem napotkałem problem z formualrzami. Problem w brzydki sposób rozwiązałem, ale zastanawiam się jak to zrobić "Symfony way".
Otóż mam formularza w w nim zagnieżdżona kolekcję. Dajmy na to Auto i w nim kolekcję części, z jakich auto się składa. Jako, że części do aut jest bardzo dużo, to musiałem zrezygnować z standardowego pola formularza "Entity" na rzecz ajaxowego autocomplete. U mnie działa to tak, że po wybrania w autocomplete danej części np. "sprzęgło marki xyz", id tej części ustawiane jest w ukrytym polu id_czesci. Problem jaki napotykam, to że w takim wypadku po wysłaniu formularza, element kolekcji, który powstaje jest niepełny - tak na prawdę nie zawiera obiektu część, a samo id i zapis do bazy wyrzuca błąd. Obejście tego problemu jakie zastosowałem, to odczytanie id w kontrolerze i przypisanie obiektu do kolekcji. Ale to rozwiązanie jest raczej niezbyt eleganckie. Pytanie zatem brzmi, czy mogę w jakiś sposób na poziomie formularza "wysłać" obiekt nie wyświetlając selecta typu "entity", tak żeby obiekt był kompletny i nie wymagał dodatkowy operacji bazodanowych w kontrolerze? Na razie rozwiązanie jakie przychodzi mi do głowy, to wyświetlenie w ukrytym divie pola czesc (select typu entity) i za pomocą event listnerów wczytanie obiektu po wysyłce formularza - ale to w sumie równie brzydkie jak obsługa problemu w kontrolerze. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 20 Dołączył: 17.01.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ja to mam tak:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję Ci bardzo - Data Transforers - muszę o tym poczytać, ale wygląda, że to dokładnie to co jest mi potrzebne.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:58 |