unset встроенные формы в symfony - PullRequest
0 голосов
/ 27 марта 2012

у меня есть две встроенные формы Form1 и Form2 в классе общей формы FormA, в общем классе, кроме встроенных форм, у меня есть виджет выбора, а в doBind я пытаюсь сбросить одну из вложенных форм (в зависимости от выборасодержимое виджета) это НЕ РАБОТАЕТ: Модели людей и животных наследуются от существа (объединение столбцов)

 protected function doBind(array $values)
        {
//embeded forms are 'person' and 'animal'
            $forms = $this->embeddedForms;


            if($values['type']== 'animal')
            {
                unset($forms['person']);

                unset($values['person']['last_name'], $values['person']['first_name'] , $values['person']['civility'], $values['person']['id'] );
            }
            parent::doBind($values);

        }

форма никогда не выбирается, и в БД у меня есть 3 сохранения (одиндля животного, один для человека и один для существа)

любая идея, ребята ???

1 Ответ

2 голосов
/ 07 мая 2012

Отключение встроенной формы после вызова метода configure() слишком поздно в жизненном цикле формы. Реализуйте свой метод configure(), чтобы он встраивал только те подчиненные формы, которые вам действительно нужны.

Например, передайте значение выбранного выбора в форму, а затем решите в методе configure (), добавлять ли PersonForm или AnimalForm.

...