Witam,
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.
  1. public function configure()
  2. {
  3. if (!$question = $this->getOption('question'))
  4. {
  5. throw new InvalidArgumentException('You must provide a question object');
  6. }
  7. if($question->isNew())
  8. {
  9. for ($i = 0; $i < $this->getOption('size', 3); $i++)
  10. {
  11. $answerOption = new AnswerOption();
  12. $answerOption->Question = $question;
  13. $answerOptionForm = new AnswerOptionForm($answerOption, array('required' => false));
  14. $this->embedForm('answer'.$i, $answerOptionForm);
  15. $this->widgetSchema->setLabel('answer'.$i, ($i+1).' ');
  16. }
  17. $this->mergePostValidator( new AnswerOptionsCountValidatorSchema());
  18. }

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?