2016-07-28 64 views
0

所以我有這個代碼在ChoiceType字段中顯示一個單選按鈕選項。如何更改Symfony 2.8中單選按鈕表單字段的ID參數?

{{ form_widget(form.persontype[0], {"attr":{"id":"student"}}) }} 

基於閱讀網絡(主要討論這裏在stackoverflow),它理論上應該改變單選按鈕的ID。但它不工作。任何想法如何得到它的工作?

這是我的與ChoiceType字段相關的表單生成器代碼。

->add(
    "persontype" 
    , "choice" 
    , array(
     "choices" => array("student"=>"Student", "staff"=>"Staff") 
     , "expanded" => true 
     , "label_attr" => array(
       "class" => "normal" 
     ) 
     , "multiple" => false 
     , "required" => false 
    ) 
) 

感謝您的幫助。

+0

看看這裏:https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout .html.twig#L334 id很直接的形式vars不在attr。 – Alsatian

回答

0

這個ID是用你的公式名稱和你的字段名稱:「formulaire [field]」製作的,我不知道你可以立即跳過。 如果您想添加自定義字段,則必須在表單選項中添加'allow_extra_fields'=> true。

0

如果使用默認form_div_layout爲您的表單組件的模板,你可以看到,屬性爲您的每個輸入生成使用下一個塊:

{%- block widget_attributes -%} 
    id="{{ id }}" name="{{ full_name }}" 
    ... 

因此,要改變ID,你有兩個選擇:

  • 重寫widget_attributes通過使用自定義表單主題
  • 覆蓋buildView或表單類型的finishView和調用之後只需添加一些代碼來修改vars['id']需要控制
1

的我敢肯定它不是意味着一個簡單的方法來覆蓋作爲ichabrand :)

不知道這就是答案之前就已經寫了,但我已經看到了它的另一天:

{{ form_widget(form.persontype[0], {"id":"student"}) }} 
相關問題