如何更改silex表单工厂名称属性

时间:2012-12-10 11:14:02

标签: forms symfony input silex

如何更改使用表单工厂创建的表单中输入的默认名称属性?

这是我正在使用的简单表单的示例:

$form = $app['form.factory']->createBuilder('form')
   ->add('image','file)
   ->add('longitude', 'hidden')
   ->add('latitude', 'hidden')
   ->getForm();

我已尝试将属性放入数组而未成功更改名称,但使用此方法我可以更改标签或类等:

->add('latitude', 'text', array('attr'=>array("name"=>'newname')))

这似乎是一个非常简单的请求,可以更改输入的名称,所以你会想到有一个明显的方法来做到这一点。使用上面的代码,它仍然会将名称显示为name=form[latitude]

1 个答案:

答案 0 :(得分:0)

使用createNamedBuilder而不是createBuilder来覆盖字段名称。该名称将是add function中的第一个参数。

$personal_form = $app['form.factory']->createNamedBuilder(null, 'form')
        ->add('name', 'text', array(
            'label' => 'Nombre',
            'data' => 'Nombre'
        ))
        ->add('surname', 'text', array(
            'label' => 'Apellidos',
            'data' => 'Apellidos'
        ))
        ->add('email', 'email', array(
            'label' => 'E-mail',
            'data' => 'E-mail'
        ))
        ->getForm();