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

フィールド名を上書きするには、createBuilder の代わりに createNamedBuilder を使用します。名前は 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 に答える