Forms 如何更改silex form factory name属性

Forms 如何更改silex form factory name属性,forms,symfony,input,silex,Forms,Symfony,Input,Silex,如何更改使用表单工厂创建的表单中输入的默认名称属性 下面是我正在使用的简单表单的一个示例: $form = $app['form.factory']->createBuilder('form') ->add('image','file) ->add('longitude', 'hidden') ->add('latitude', 'hidden') ->getForm(); 我尝试将属性放入数组,但没有成功更改名称,尽管使用此方法我可以更改

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

下面是我正在使用的简单表单的一个示例:

$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]

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

$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();