如何在 symfony2 中创建动态表单

how to create dynamic form in symfony2

我有一个表单类型,ContactoType,此表单包含以下字段:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('nombre','text', array(
                'attr' => array(
                    'placeholder' => 'contacto.nombre'
                )
            ))
            ->add('departamento', 'entity', array(
                'label' => "Departamentos",
                'class' => 'ProductosBundle:Departamento',
                'property' => 'nombre'
            ))
            ->add('fechaEvento', 'birthday',array(
                'input' => 'datetime',
                'widget' => 'single_text',
                'format' => 'dd-MM-yyyy',
                'attr' => array(
                    'placeholder' => 'DD-MM-YYYY',
                    'class' => 'form-control')))
            ->add('promocion','text', array(
                'attr' => array(
                    'placeholder' => 'contacto.promocion'
                )
            ))
            ->add('apodo','text', array(
                'attr' => array(
                    'placeholder' => 'contacto.apodo'
                )
            ))
            ->add('file','file', array(
                'attr' => array(
                    'placeholder' => 'contacto.fichero'
                )
            ))
            ;
    }

Departamento 实体有一个名为 "requiresadditional" 的字段,如果为真,将显示促销昵称,如果为假,则隐藏。 不知道如何获取字段值 "requiresadditional"...

它应该这样做吗?谢谢!

通常我将所有字段添加到我的 symfony 表单中,然后使用简单的 javascript 事件显示/隐藏该字段。

您应该在 FormEvent 中测试 Departamento 实体。阅读有关 FormEvents 的文档 here.