[SF2][SF]Post w xxxTYpe jak odebrać? |
[SF2][SF]Post w xxxTYpe jak odebrać? |
16.05.2013, 15:05:30
Post
#1
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
Witam,
ostatnio męczę jedną rzecz w wątku obok. Zakładam ten wątek gdyż problem jak widać jest większy niż by się wydawało. Chciałem w FormType wyświetlić po prostu dane które wysłałem => wydawało by się to dziecinnie proste, bo przecież 99% programistów tworzy dynamiczne formularze czy to ajaxowe czy po przeładowaniu, a jednak takie proste nie jest. W moim przykładzie poniżej używałem już wszystkiego chyba co posiada Internet. Od dokumentacji : http://symfony.com/doc/current/cookbook/fo...dification.html po przez blogi http://php-and-symfony.matthiasnoback.nl/ czy http://sf.khepin.com/2012/10/user-dependen...ms-in-symfony2/ i inne cuda na kiju. Odnalazłem jednak jeden artykuł w którym jest mowa o błędzie Symfonii https://github.com/symfony/symfony/issues/6128 . Pytanie zatem brzmi => czy ktoś wie w jaki sposób wyświetlić w buildForm dane wysłane z mojego formularza ? Ja to obszedłem, że w atrybuty html wrzuciłem requesta czy te dane i śmiga... ale tak to wyglądać nie może bo tak to się nie robi.
|
|
|
16.05.2013, 15:52:01
Post
#2
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
To jeszcze proszę dopowiedz czy Twój problem też dotyczy formularza zagnieżdżonego bo z poprzedniego wątku to wcale nie wynika.
Kolejna sprawa: Cytat Chciałem w FormType wyświetlić po prostu dane które wysłałem Skoro chcesz odebrać dane to przede wszystkim nie jest za to odpowiedzialne zdarzenie POST_SET_DATA. Raczej któreś z *_BIND, a skoro chcesz modyfikować formularz to pozostaje Ci tylko PRE_BIND. Ten post edytował destroyerr 16.05.2013, 16:31:28 |
|
|
17.05.2013, 08:27:32
Post
#3
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
No ten listener to jedno ze sposób próby odebrania danych i wyświetlenia...
Nie jest to zagnieżdżony formularz... całość wygląda tak: Kontroler wygenerowany przez CRUD...
I nieszczęsny PagesType()
No i zatrzymałem się na tym, że chciałem zbudować zapytanie dla subcategory przy użyciu wysłanej category, ale sobie myślę, a najpierw wyświetlę id category co wysłał formularz... i się zaczęło. Także w ten sposób mam formularz. Nic nie zagnieżdżam cokolwiek masz przez to na myśli (wrzucanie nowych pól?) . Dzięki za pomoc. Ten post edytował basso 17.05.2013, 08:29:19 |
|
|
17.05.2013, 08:38:34
Post
#4
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Cytat Nic nie zagnieżdżam cokolwiek masz przez to na myśli (wrzucanie nowych pól?) . Link do githuba który wrzuciłeś opisywał problem zagnieżdżonych formularzy. Skoro takich nie masz to Ciebie ten bug (o ile faktycznie jest) nie dotyczy. |
|
|
17.05.2013, 09:32:18
Post
#5
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
No nie wiem co to jest zagnieżdżony formularz... mogę to sobie tylko wyobrazić jako dodawanie pól formularza do istniejącego już formularza w strukturę DHTML przez js (czy to ajax czy poprzez listenera po przeładowaniu).
A kojarzysz jak tu odebrać to ID? Mogę zrobić to po swojemu... chociaż wolałbym zrobić to prawidłowo, dlatego męczę |
|
|
17.05.2013, 11:53:56
Post
#6
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Cytat No nie wiem co to jest zagnieżdżony formularz Nie odczuwam przyjemności w przepisywaniu dokumentacji więc musisz tam sam zajrzeć. Cytat A kojarzysz jak tu odebrać to ID? Nie napisałem tego przypadkiem w drugim poście tego tematu? Zamiast zdarzenia POST_SET_DATA skorzystaj z PRE_BIND i wtedy w $event->getData() masz tablicę z danymi wysłanymi do formularza. Włącznie z id, które jest Tobie potrzebne. |
|
|
17.05.2013, 13:13:07
Post
#7
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
ZROBIŁEM... dzięki.
Ale... metody z dokumentacji: PRE_SET_DATA POST_SET_DATA PRE_BIND BIND POST_BIND , nie działają tak jak to jest opisane. I uważajcie na to ! Szczególnie POST_BIND co po ludzku wydaje się, dołączenie po ;/ to nie jest w ogóle ono wywoływane ;/ Tak samo PRE_BIND => no przecież ona powinna zadziałać przed wrzuceniem danych do formularza => działa PO Bo ja w swoim formularzu tez mam ->add('subcategory',"choice",array("empty_value"=>"Najpierw wybierz kategorię") , i nadpisuje mi te pole... no ale nie powinno => no ale działa jakby to powiedzieć "Jak Żyd, na lewą stronę"
Ten post edytował basso 17.05.2013, 13:24:10 |
|
|
17.05.2013, 13:52:21
Post
#8
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Nie zgodzę się. U mnie wszystkie zdarzenia działają poprawnie. Mały przykład jak wygląda przepływ:
Kod [Controller] Create Form
[Form] Pre set data event [Form] Post set data event [Controller] Bind form [Form] Pre bind event [Form] Bind event [Form] Post bind event |
|
|
17.05.2013, 18:46:35
Post
#9
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
A no to tak to ja sobie też mogę ... weź proszę zrób sobie przykład post_bind => zobaczymy czy CI się wywoła.... też tak myślałem jak Ty.
Z twojego przepływu wynika, że post bin event powinien działać zawsze, bynajmniej po zbudowaniu formularza... nie powinno być problemu ze zmianą czegoś w formularzu ... a jednak , nie działa |
|
|
17.05.2013, 19:27:48
Post
#10
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Cytat A no to tak to ja sobie też mogę ... weź proszę zrób sobie przykład post_bind => zobaczymy czy CI się wywoła.... też tak myślałem jak Ty. Ale ja sobie tego nie wypisałem ot tak. To są wyświetlone poszczególne kroki. Minimalny kod na potrzeby tego przykładu. Cytat Z twojego przepływu wynika, że post bin event powinien działać zawsze, bynajmniej po zbudowaniu formularza... nie powinno być problemu ze zmianą czegoś w formularzu ... a jednak , nie działa Działa zawsze po zbindowaniu. W drugim poście tego wątku napisałem, że w zdarzeniu POST_BIND za późno jest już na modyfikacje (to samo jest w dokumentacji). Jeśli chcesz rozwiązania problemu, to wrzuć minimalny kod, który łatwo da się uruchomić. |
|
|
19.05.2013, 14:05:57
Post
#11
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) |
Dzięki wielkie
|
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 18:29 |