2014-11-06 23 views
0

我想做一個形式與兩個相互不相關的獨特objets。symfony2形式與2個不同的對象

可能嗎? 當用戶點擊一個Javascript提交按鈕時,我是否必須在同一頁面上做2個表單,並使用javascript將它們全部彙集在一起​​?或者可以用Symfony的一種形式進行管理。如果是的話,有關如何進行的提示?

+2

嘗試將第二個表單嵌入到第一個表單中http://symfony.com/doc/current/book/forms.html#embedded-forms – dmnptr 2014-11-06 21:43:44

回答

2

我不確定這個解決方案是否是最好的解決方案,但它在我的一個項目中工作,在那裏我有類似的問題。

您需要爲每個實體創建FormType,並在setDefaultOptions方法中正確定義data_class。在我們的例子中,這些是EventType和UserType。

爲此,您需要創建表示兩個實體的類。我打電話給表單模型。

// Acme\DemoBundle\Form\Model\Custom.php 

class Custom 
{ 
    public $event; 
    public $user; 
} 

現在只需創建最後一個將此實體粘合在一起的FormType。

// Acme\DemoBundle\Form\CustomType.php 

class CustomType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('Event', new EventType()); 
     $builder->add('User', new UserType()); 
    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'Acme\DemoBundle\Form\Model\Custom' 
     )); 
    } 

    ... 
}