symfony2形式与2个不同的对象

问题描述:

我想做一个形式与两个相互不相关的独特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

我不确定这个解决方案是否是最好的解决方案,但它在我的一个项目中工作,在那里我有类似的问题。

您需要为每个实体创建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' 
     )); 
    } 

    ... 
}