如何在Symfony 2.8中更改单选按钮表单字段的ID参数?

时间:2016-07-28 04:49:00

标签: php symfony twig

所以我有这个代码在ChoiceType字段中显示一个单选按钮选项。

{{ 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
    )
)

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

我很确定它不会像ichabrand之前写过的那样以简单的方式覆盖:)

不确定这是不是答案,但我已经看到了另一天:

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

答案 1 :(得分:0)

此ID是使用您的公式名称和您的字段名称生成的:"公式[字段]",我不确定您是否可以超越它。 如果您要添加自定义字段,则必须添加' allow_extra_fields' =>在您的表单选项中为true。

答案 2 :(得分:0)

如果您使用默认form_div_layout作为表单组件模板,您可以注意到使用下一个块生成的每个输入的属性:

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

因此,要更改ID,您有两个选项:

  • 使用自定义表单主题重写widget_attributes
  • 覆盖您的表单类型的buildViewfinishView,并在调用parent::buildView后添加一些代码来修改所需控件的vars['id']