2012-05-11 87 views
2

如此處所示http://symfony.com/doc/current/cookbook/form/dynamic_form_generation.html可以使用數據事件動態生成表單。是否可以在symfony2中使用FormBuilder生成動態表單?

在該示例中給定的新的字段被添加有FormFactory,這是比在buildForm方法提供的FormBuilder有點不太方便。

有是建立在buildForm方法動態表單的方式:

$this->createForm(new MyFormType(), $object); 

裏面的buildForm方法,你得到的選項排列爲「數據」,從而provinding辦法中的對象根據數據製作您的表格。

這不像數據事件那樣強大(請求綁定就是一個例子)。

有沒有辦法使用數據事件與FormBuilder?我認爲,無論您構建靜態表單還是動態表單,表單構建都應該是無縫的。

回答

0

您可以創建字段:

public function buildView(FormView $view, FormInterface $form) 
{ 
    $data = $form->getClientData(); 
    if ($data && is_array($data) && count($data)) { 
     $children = $form->getChildren(); 
     foreach ($data as $k => $v) { 
      $children[$k]->add($this->form_factory->createNamed('hidden', 'name', $v)) 
     } 
    } 
} 
+1

耶。混合所有東西的是,在這樣的幫助下,我們不知道它是否是'Form'或'* Type'上的''buildView''。 – renoirb

相關問題