Czy ktoś mógłby mi powiedzieć jak przeprowadzić walidację formularza w przypadku, gdy nie jest znana liczba jego pól? Jest to właściwie nieznana ilość takich formularzy wbudowanych z jednym polem.
public function configure() { if (!$question = $this->getOption('question')) { throw new InvalidArgumentException('You must provide a question object'); } if($question->isNew()) { for ($i = 0; $i < $this->getOption('size', 3); $i++) { $answerOption = new AnswerOption(); $answerOption->Question = $question; $this->embedForm('answer'.$i, $answerOptionForm); $this->widgetSchema->setLabel('answer'.$i, ($i+1).' '); } $this->mergePostValidator( new AnswerOptionsCountValidatorSchema()); }
Jak widać ilość formularzy jest tutaj na sztywno ustawiona 3. Jeżeli będzie 4 to już nie wyświetli błąd. Jak zrobić, żeby było tyle pól ile w requescie? Potrzebuję tego do poprawnej walidacji oraz ewentualnie - w przypadku nie przejścia walidacji ponownego wyświetlenia formularza. Jeżeli zrobię getAnswerOptions w configure to zwracany obiekt nie zawiera odpowiedzi, więc nie wiem ile ich przesłano. Jak zatem to zrobić? Czy odczytywanie z requesta i zliczanie odpowiedzi, a następnie zrobienie takiej ilości subformularzy to jedyne wyjście? Kiedy tworzone są obiekty na podstawie requestu?