0

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

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

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

4

1 回答 1

0

使用 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();
于 2013-02-15T08:57:11.640 回答