2012-03-27 11 views
0

私は2つの埋め込みフォームForm1とForm2を一般的なフォームクラスFormA、 で一般クラスに持っています。埋め込みフォームの他に選択ウィジェットがあり、埋め込みフォーム(選択ウィジェットの含有量に応じて) このdoes'nt WORK: 人と動物モデルは、フォームがunsetedことはありませんし、デシベルで、私は3セーブ持ったクリーチャー(列アグレガシオン)symfonyで組み込みの埋め込まれていないフォーム

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); 

     } 

から継承(動物用、人用、生物用)

任意のアイデアの男???

答えて

2

configure()メソッドが呼び出された後に埋め込みフォームを設定解除すると、フォームのライフサイクルで遅すぎます。 configure()メソッドを実装すると、実際に必要なサブフォームのみが埋め込まれます。

たとえば、選択した選択肢の値をフォームに渡してから、configure()メソッドでPersonFormまたはAnimalFormを追加するかどうかを決定します。

関連する問題