2015-07-11 66 views
0

我正在用symfony2創建一個簡單的博客系統。每個博客必然會有一定數量的標籤Symfony2,動態刷新表格選項

創建新博客文章時,可以使用複選框選擇標籤。現在我想能夠動態添加新的標籤複選框到表單中。

AJAX部分已完成並正在工作,我可以向標記實體添加新的標記名稱並將新的複選框附加到窗體上。

問題是,當我提交表單時,symfony2無法識別新添加的標籤,因爲它們還不屬於標籤實體(在生成表單時)。

例如:提交表單後,我轉儲:

$tags = $form->get('tags')->getData(); 

控制器忽略通過Ajax添加的標記。

我知道它必須以某種方式解決事件,我已經閱讀了這個文檔:http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html,但無法弄清楚如何在這個特定的情況下實現它。

這裏是我的「PostType」表單生成器:

$builder 
     ->add('title') 
     ->add('content', 'textarea') 
     ->add('tags', 'entity', array(
      'class' => 'Bundle:Tag', 
      'property' => 'name', 
      'multiple' => true, 
      'expanded' => true, 
     )) 
     ->add('save', 'submit') 
    ; 

回答

0

確保你堅持新添加的標籤提交表單之前,和複選框有正確的名稱和值。

名稱應該像「post [tags] []」,值應該是標籤實體的數據庫ID。