symfony表单标签属性' for'不要根据form_widget' id'而改变通过模板时更改

时间:2017-01-15 11:11:26

标签: forms symfony twig

我正在渲染一个包含symfony表单字段的表单 在我的模板中,我正在逐个渲染表单 像这样 {{- form_label(form.category,'Categoryname',{ 'label_attr' : {'class': 'control-label','for':'Cname'}}) -}} {{- form_widget(form.category,{ 'attr': {'class': 'form-control col-md-10','max-length':55},'label': 'Category name','required':true,'id':'Cname' }) -}}

但是' id'表单字段更改为' Cname'但是标签中的for属性没有改变,它显示了symfony的默认值 我怎样才能更改" id"表单字段和"表示"相应标签的属性?

1 个答案:

答案 0 :(得分:-1)

您可以自定义 form_label 。有关详细信息,请参阅Making Application-wide Customization。原始表单模板存储在https://github.com/symfony/symfony/blob/2.7/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig中。例如,您可以更改块 form_label

的部分
{% if not compound -%}
    {% set label_attr = label_attr|merge({'for': id}) %}
{%- endif -%}

{% if not compound -%}
    {% set label_attr = {'for': id}|merge(label_attr) %}
{%- endif -%}

现在 label_attr 中的自定义参数将覆盖默认小部件 id