![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam kolejny mały problem. Mam obiekt Question. W akcji, a raczej w formularzu new chciałem dodać dodatkowe pole, w które będzie się wpisywało ile opcji opcji losowych odpowiedzi chciałbym dla niego wylosować. Question do odpowiedzi jest powiązany w sposób jeden do wielu. Gdzieś znalazłem, że wystarczy dodać w formularzu input_tag(...). Niestety nie działa: Kod Call to undefined function input_tag() Czy to zostało wycofane w Symfony 1.4? Czy zatem prawidłowy sposób teraz to poprzez dodanie tego do schematów widget i validator? Czy da się to zrobić tak, żeby to nie było pole należące do Question czyli question[number_of_options_to_generate] tylko po prostu number_of_options_to_generate? Wolałbym tak, gdyż tworzenie odpowiedzi chyba pasuje zrobić w akcji, a nie w modelu question. Mam nadzieję, że nie będę musiał tworzyć jeszcze jednego nadrzędnego formularza.
Ten post edytował SnakeEater 6.04.2010, 14:48:41 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Helpery do tworzenia formularzy zostały wycofane. Możesz sobie sam dopisać kawałek html'a wymieszanego z php i mieć to pole, lub widżet i walidator. Walidator (czyli jego tworzenie i walidacja) powinien znaleźć się gdzieś w akcji, to tworzenie widżetu powinno odbyś się w widoku, a wyświetlenie w szablonie.
Nie wiem dokładnie jak ma wyglądać to co chesz zrobić, ale o ile dobrze zrozumiałem, to pole to powinno się znaleźć w formularzu. Formularz nie musi być czystym odzwierciedleniem modelu (obrazem pól w bazie w polach formularza). Generowanie odpowiedzi to moim zdaniem zadanie właśnie dla modelu, który nie ma być tylko i wyłącznie kontenerem dla danych, powinien je również przetwarzać. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję sporo mi to rozjaśniło. Jeżeli dodam do formularza QuestionForm te pole poprzez dodanie do schematu widgetów i validatorów, to czy znajdzie się te pole w modelu Question w akcji create? Po analizie kodu doszedłem do wniosku, że tylko z pól tabeli można korzystać w modelu. Czy będzie trzeba ręcznie odczytać question['numer_of_options_to_generate'] w akcji i przekazać do stworzonej metody question->generateOptions()?
Obawy potwierdziły się. Zatrzymałem wykonanie kodu i faktycznie pole nie znajduje się w tablicy _data obiektu question. Czy naprawdę nie ma sposobu, żeby te pole znalazło się w modelu podczas akcji create? Ten post edytował SnakeEater 6.04.2010, 17:51:48 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 08:43 |