2016-07-28 5 views
0

このコードでは、1つのラジオボタンオプションを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

はこちらをご覧.html.twig#L334 idは、attrにはない形式の変数であるdiretlyです。 – Alsatian

答えて

0

このIDはあなたのformulaire名とあなたのフィールド名で作られています: "formulaire [field]"、私はあなたがそれを越えることができるかどうかは分かりません。 カスタムフィールドを追加する場合は、フォームオプションに 'allow_extra_fields' => trueを追加する必要があります。

0

あなたのフォームコンポーネントテンプレートとしてデフォルトform_div_layoutを使用している場合、あなたはそれがあなたの入力のそれぞれは、次のブロックを使用して生成するために属性を気づくことができます。

:だからIDを変更する

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

を、あなたは2つのオプションを持っていますbuildView上書きしたり、フォームタイプのfinishViewとの呼び出し後にカスタムフォームのテーマ

  • を使用して
    • 書き換えはちょうど私がかなり確信して必要な制御
  • 1

    vars['id']を修正するためにいくつかのコードを追加していないichabrandが既に:)

    これは答えがあるかどうかわからない前に書いたように簡単な方法で上書きすることを意味しますが私は別の日にそれを見てきました:https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout:

    {{ form_widget(form.persontype[0], {"id":"student"}) }} 
    
    関連する問題