【问题标题】:How to customize a CollectionType() item?如何自定义 CollectionType() 项目?
【发布时间】: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-prototypedata-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 自定义数据原型是什么意思?

标签: symfony twig


【解决方案1】:

我在 symfony 的 bug tracker 中提出了这个问题,似乎没有解决方案,但一个好的解决方法是为您要自定义的每个子字段创建自定义类型。见this issue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 2010-10-24
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多