【发布时间】:2011-11-17 09:32:57
【问题描述】:
这个§ of the Symfony2 documentation 展示了一种很棒的自定义单个字段的技术。我经常使用它,但有一个特定的Type 很难对其进行自定义:CollectionType() 自定义集合本身非常容易,您可以执行以下操作:
{% block _mynamespace_mybundle_mytype_mycollectionfield_row %}
{% if prototype is defined %}
{% set attr = attr|merge({'data-prototype': form_widget(prototype) }) %}
{% endif %}
{% spaceless %}
<ul {{ block('widget_container_attributes') }}>
{% spaceless %}
{{ form_errors(form) }}
{% for child in form %}
<li>
{{form_widget(child)}}
</li>
{% endfor %}
{% endspaceless %}
{{ form_rest(form) }}
</ul>
{% endspaceless %}
{% endblock %}
但是如何自定义集合的每个元素呢?以及如何使用 Twig 自定义 data-prototype(data-prototype 是一个特殊的属性,用于使用 js 添加新项目)?
我尝试做这样的事情(对于data-prototype):
{% block _mynamespace_mybundle_mytype_mycollectionfield_$$name$$_row %}
customization ok!
{% endblock %}
但我得到错误,因为我不知道如何逃避$
关于物品,我尝试了很多东西:
{% block _mynamespace_mybundle_mytype_mycollectionfield_item_subfield_row %}
customization ok!
{% endblock %}
{% block _mynamespace_mybundle_mytype_mycollectionfield_element_subfield_row %}
customization ok!
{% endblock %}
它们都不起作用。
【问题讨论】:
-
使用 Twig 自定义数据原型是什么意思?