2012-12-10 55 views
0

如何更改我的表單中使用表單工廠創建的輸入的默認名稱屬性?如何更改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]

回答

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