Forms 根据项重写表单呈现模板

Forms 根据项重写表单呈现模板,forms,symfony,Forms,Symfony,例如 我在formobject中有两个成员 form_小部件(form.icon) form_小部件(form.name) 我已更改“选择\u小部件\u扩展” {% block choice_widget_expanded %} {% spaceless %} <table {{ block('widget_container_attributes') }}> {% for child in form %} <tr> {{ fo

例如
我在formobject中有两个成员

form_小部件(form.icon)

form_小部件(form.name)

我已更改“选择\u小部件\u扩展”

{% block choice_widget_expanded %}
{% spaceless %}
    <table {{ block('widget_container_attributes') }}>
    {% for child in form %}
      <tr>
        {{ form_widget(child) }}
        {{ form_label(child) }}
      </tr>
    {% endfor %}
    </table>
{% endspaceless %}
{% endblock choice_widget_expanded %}
{%block choice\u widget\u expanded%}
{%spaceless%}
{表格%中的子项为%1}
{{form_widget(child)}
{{form_label(child)}
{%endfor%}
{%endspaceless%}
{%endblock choice_widget_expanded%}
但是,我想让它只影响{{form.icon}}


可能吗?如何判断传递到此块的对象是form.icon还是form.name?

若要覆盖
选项\u widget\u expanded
的标签块,您可以定义块并使用它,如下所示

{% block choice_widget_expanded %}
{% spaceless %}
    <table {{ block('widget_container_attributes') }}>
    {% for child in form %}
      <tr>
        {{ form_widget(child) }}
        {{ form_label_custom(child) }}
      </tr>
    {% endfor %}
    </table>
{% endspaceless %}
{% endblock choice_widget_expanded %}
甚至可以定义自定义
form\u widget\u custom(child)
块来覆盖

{% block form_widget_custom %}
{% spaceless %}
    {% if compound %}
        {{ block('form_widget_compound') }}
    {% else %}
        {{ block('form_widget_simple') }}
    {% endif %}
{% endspaceless %}
{% endblock form_widget_custom %}
现在渲染你的场

{{ form_widget_custom(form.icon) }}
{{ form_widget_custom(form.icon) }}