symfony2具有2个不同对象的表单

时间:2014-11-06 21:29:40

标签: forms symfony entities

我想做一个表格,其中包含两个彼此无关的区别对象。

有可能吗? 当用户点击Javascript提交按钮时,我是否必须在同一页面上执行2个表单并使用javascript将它们汇总在一起?或者可以使用Symfony的一个表单来管理它。如果是,有关如何进行的任何提示吗?

1 个答案:

答案 0 :(得分:2)

我不确定这个解决方案是否是最佳解决方案,但它正在我的某个项目中工作,我遇到了类似的问题。

您需要为每个实体创建FormType,并在data_class方法中正确定义setDefaultOptions。在我们的示例中,这些是EventType和UserType。

为此,您需要创建表示两个实体的类。我打电话给Form Models。

// 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'
        ));
    }

    ...
}