Symfony 3.2表单字段 - 禁用ID

时间:2018-03-15 12:51:32

标签: php frameworks symfony-forms symfony-3.2

是否可以渲染没有id的输入字段? 我想在twig文件中禁用它。

我想要,因为我在Chrome控制台中有一个错误“非唯一ID”。

我使用Symfony's documentation进行了研究,我找到了一些可行的方法:“使用Twig在单个文件中自定义表单输出”

我要替换的块是

 {%- block widget_attributes -%}

此块位于form_div_layout.twig.html

我把它放在my_form.twig.html里面     {%form_theme表单_self%}

{% block form_row %}
    {%- block widget_attributes -%}
     id="{{ id }}" name="{{ full_name }}"
      {%- if disabled %} disabled="disabled"{% endif -%}
      {%- if required %} required="required"{% endif -%}
      {%- for attrname, attrvalue in attr -%}
          {{- " " -}}
          {%- if attrname in ['placeholder', 'title'] -%}
              {{- attrname }}="{{ translation_domain is same as(false) ? attrvalue : attrvalue|trans({}, translation_domain) }}"
          {%- elseif attrvalue is same as(true) -%}
             {{- attrname }}="{{ attrname }}"
          {%- elseif attrvalue is not same as(false) -%}
              {{- attrname }}="{{ attrvalue }}"
          {%- endif -%}
      {%- endfor -%}
  {%- endblock widget_attributes -%}
{% endblock form_row %}


{{ form_start(form) }}

......

我收到错误:

  

“变量”full_name“不存在。”

我不想编辑form_div_layout.html.twig

1 个答案:

答案 0 :(得分:0)

我做到了!

目前,我认为我找到了解决方案

{% form_theme form _self %}
{% block form_row %}
    {% block input_widget %}
        {% set id = random() %} {# Random number for the id #}
        {{ block('form_widget') }}
    {% endblock input_widget %}
{% endblock form_row %}

{{ form_row(form.my_form) }}

这不是最终解决方案,因为我想要" id"不要在输入表格中显示。