![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 12.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
uczę się Symfony i mam pewien problem. Wygenerowałem sobie tabelkę do edycji/dodawania nowych/usuwania pozycji na modelu za pomocą 'doctrine:generate-admin'. Dodałem w pliku generator.yml swoje 'object_actions', pod które podpiąłem własny formularz. Jeśli wybiorę którąś pozycję z tabelki, to przechodzę pod adres 'localhost/backend_dev.php/application/3/listMojaAkcja' (numer 3 to ID). Do tej pory jest wszystko ok, mogę to ID odczytać za pomocą '$request->getParameter('id')'. Po wypełnieniu pól i wciśnięciu 'save' wykonuje mi się akcja 'executeUpdate', a w niej sprawdzanie formularza 'processForm'. Niestety nie potrafię już w tym miejscu odczytać id, żeby przypisać dane z formularza do konkretnego id w bazie. Czy może mnie ktoś naprowadzić co robię źle / czego mam poszukać / jak przekazać lub odczytać parametr? Będę ogromnie wdzięczny za każdą pomoc. Pozdrawiam, Michał |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Na początek to powiem, że moim zdaniem nie ma lekko. Admin generator w symfony nie jest do tego przygotowany , ale można sobie z tym poradzić. Problem polega na tym, że wygenerowany szablon dla formularza zawsze jest wysyłany do akcji update. Musisz to zmienić, albo na poziomie szablonu, albo w akcji będziesz rozpoznawał jaki to formularz i zmienisz wtedy akcję.
Nie jestem pewny czy trafiłem w Twój problem, bo za bardzo nie rozumiem jaki masz problem z odczytaniem id. Trochę kodu z kontrolera pomogłoby w rozwiązywaniu problemu. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 12.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
To może trochę wyjaśnień. Mam testy, do których tworzę żetony. Mógłbym utworzyć nowy moduł w panelu admina, ale do każdego testu będę potrzebował generować po kilkanaście/kilkadziesiąt żetonów. Byłoby to uciążliwe, dlatego chciałem dodać akcję w tabelce z testami, gdzie po wejściu w formularzu wpiszę liczbę i po kliknięciu save utworzy mi się taka liczba żetonów - będą się one wyświetlać pod tym formularzem. Żeby żetony przypisać do konkretnego testu, muszę przekazać gdzieś w formularzu jego id. Za pierwszym razem nie jest to problem - $request->getParameter('id') załatwia sprawę, przekazuję ten parametr do opcji formularza i ustawiam go jako input hidden. W akcji sprawdzania formularza odczytuję parametr z ukrytego pola. Niestety nie potrafię już niżej wyświetlić utworzonych dotychczas żetonów, bo nie potrafię odczytać w akcji executeZapiszZetony ani odczytajZetonyForm id testu, na którym obecnie operuję.
Po wejściu w konkretną pozycję mam formularz i wypisane żetony dla danego testu:
Po wpisaniu liczby i kliknięciu save już parametru id nie widzę:
Sprawdzanie formularza:
Formularz:
I szablon:
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 18:41 |