如何在 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.
我有一个表单类型,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.