Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][Symfony2] Brak danych po wysłaniu formularza z pola wielokrotnego wyboru checkbox.
Forum PHP.pl > Forum > PHP > Frameworki
luke18dg
Dobry.
Mam problem, który nie umiem sobie z nim poradzić.
Mam tabelę Wyniki, która przechowuje wiele Drużyn.
Czyli standardowe OneToMany.
Tabela Wyniki
http://pastebin.com/btN9dHDM
Tabela Drużyny
http://pastebin.com/EQrg9mA4
Do tych tabel, próbuję stworzyć formularz. Jednym z pól tego formularza jest pole typu Enity, które można wybrać za pomocą kilku checkboxow. Dlatego musiałem mieć także ArrayColections, po stronie Wyników.
Forma:
http://pastebin.com/LfkSyZrM
Moim głównym problemem okazuje się brak danych po wysłaniu formy, mogę to potwierdzić, ponieważ tworzyłem widok modyfikacji, który mimo wysłania zmodyfikowanego formularza, nic nie zrobił. Nie zapisał danych. Gdzie robię błąd?
prz3kus
Z tego co pamiętam to bolączka symfony i doctrine.

Wygenerowane formularze ManyToOne czy tam OneToMany działa tylko od strony Many smile.gif

Przynajmniej kiedyś tak było (nie wiem czy to naprawili biggrin.gif )
kapslokk
A nie powinieneś mieć przypadkiem w entity cascade persist?

http://symfony.com/doc/current/cookbook/fo...ollections.html i szukaj: Doctrine: Cascading Relations and saving the "Inverse" side

Swoją drogą jak już piszesz w SF to pisz po angielsku.
luke18dg
Po wielu dniach walki oraz przejściu na SF3, okazało się że największym problemem, który był tutaj przedstawiony było wykorzystanie OneToMany. Po wykorzystaniu ManyToMany, wszystko zaczęło działać. Jeden wynik, może mieć wiele drużyn oraz jedna drużyna może mieć wiele wyników. Typowe ManyToMany, którego nie zauważyłem.
Następny problem, który miałem okazał się być w nie zaznaczaniu checkboxow, mimo siedzących danych w formie, rozwiązanie okazało proste: usunięcie "'data' => array(new Druzyna()),". I zaczęło wszystko działać.

http://symfony.com/doc/current/cookbook/fo...ollections.html i szukaj: Doctrine: Cascading Relations and saving the "Inverse" side
[/quote]
Dziękuje za tą wskazówkę, bardzo mi pomogła rozszerzyć wiedzę o Doctrine. Chociaż problem tkwił w używaniu OneToMany, później w używaniu ManyToMany Unidirectional, rozwiązanie tkwiło w ManyToMany Bidirectional.
Cytat(kapslokk @ 30.05.2016, 11:46:20 ) *
Swoją drogą jak już piszesz w SF to pisz po angielsku.

Poważnie myślę nad tym, ale że jest to mój pierwszy projekt w SF oraz dopiero się uczę, to dalej mam opory przed takim pisaniem. Chociaż poważnie myślę nad zmianą programowania z polskiego na angielski. Możliwe, że wygrywają u mnie przyzwyczajanie, ponieważ uczyłem się programować po polsku.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.