Symfony 3.3:2相同类型的形式

时间:2018-04-12 08:31:38

标签: php forms symfony frameworks

我的网站上有一个很大的表单。因为它非常大,我想把它分成两部分。我做了第一个,它正在工作。现在我想在同一页面上做第二个。它们都有相同的实体(所以基本上,我想在同一页面上做同一个实体的2种形式),但我现在不知道如何在buildForm中做到这一点。我是否需要在$ builder($ builder =我的第一个表单)旁边创建另一个变量。

感谢您的回答!

2 个答案:

答案 0 :(得分:0)

这里有一些代码:

class myType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
                ->add('numero')
                ->add('other')
                ->add('things')
    }

我想要1个提交按钮表格2表格,但第二个表格不是第一次显示。仅在提交第一个表单时才会显示。

答案 1 :(得分:0)

我会做什么,我不知道这是否是最好的方式,但我会创建两种表单类型。 1)基于您的实体的表单类型和2)您将它们组合在一起的fromtype。

联系人的简单示例

class ContactType extends AbstractType {

public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder->add('billing', AddressType::class);
    $builder->add('shipping', AddressType::class);       
}

public function getBlockPrefix() {
    return 'contact';
}
}

AddressType如下所示:

class AddressType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder
            ->add('street', TextType::class, array())
            ->add('country', TextType::class, array())
            ;
}

public function getBlockPrefix() {
    return 'address';
}

public function configureOptions(OptionsResolver $resolver) 
{
    $resolver->setDefaults(array(
        'data_class' => '<yourbundle>\Entity\Address',
    ));
}
}