我正在创建一个自定义表单主题来为自定义字段类型生成正确的 HTML。我注册了我的 twigfile,它工作正常,除了一个奇怪的函数未找到错误。
我从创建集合类型的默认主题 (form_div_layout) 中复制了部分。然后我更改了块名称以避免干扰默认样式。在更改块名称之前,它可以工作,甚至使用我的本地定义,但之后 twig 似乎无法将块用作函数(尽管它在默认主题中工作)。有人可以给我一个提示吗?
这工作,只是从默认模板复制。
{% block sortableCollection_widget %}
{% spaceless %}
{% if prototype is defined %}
{% set attr = attr|merge({'data-prototype': form_row(prototype) }) %}
{% endif %}
<div {{ block('widget_container_attributes') }}>
{% if form.parent is empty %}
{{ form_errors(form) }}
{% endif %}
{{ block('sortableCollection_rows') }}
{{ form_rest(form) }}
</div>
{% endspaceless %}
{% endblock %}
{% block sortableCollection_rows %}
{% spaceless %}
<ol class='.collection-editor .collection-sortable'>
{% for child in form %}
{{ form_row(child) }}
{% endfor %}
</ol>
{% endspaceless %}
{% endblock sortableCollection_rows %}
{% block form_row %}
{% spaceless %}
<li>using my template
{{ form_label(form) }}
{{ form_errors(form) }}
{{ form_widget(form) }}
</li>
{% endspaceless %}
{% endblock form_row %}
{% block form_rows %}
{% spaceless %}
{% for child in form %}
{{ form_row(child) }}
{% endfor %}
{% endspaceless %}
{% endblock form_rows %}
现在我将 form_row 重命名为 sortableCollection_row 并出现此错误:函数“sortableCollection_row”在第 39 行的 DTAMetadataBundle:Form:sortableCollection.html.twig 中不存在
它指向调用 sortableCollection_row(child) 的地方。
{% block sortableCollection_widget %}
{% spaceless %}
{% if prototype is defined %}
{% set attr = attr|merge({'data-prototype': form_row(prototype) }) %}
{% endif %}
<div {{ block('widget_container_attributes') }}>
{% if form.parent is empty %}
{{ form_errors(form) }}
{% endif %}
{{ block('sortableCollection_rows') }}
{{ form_rest(form) }}
</div>
{% endspaceless %}
{% endblock %}
{% block sortableCollection_rows %}
{% spaceless %}
<ol class='.collection-editor .collection-sortable'>
{% for child in form %}
{{ form_row(child) }}
{% endfor %}
</ol>
{% endspaceless %}
{% endblock sortableCollection_rows %}
{% block sortableCollection_row %}
{% spaceless %}
<li>using my template
{{ form_label(form) }}
{{ form_errors(form) }}
{{ form_widget(form) }}
</li>
{% endspaceless %}
{% endblock sortableCollection_row %}
{% block form_rows %}
{% spaceless %}
{% for child in form %}
{{ sortableCollection_row(child) }} // ERROR.
{% endfor %}
{% endspaceless %}
{% endblock form_rows %}
一个想法,有人吗?谢谢!