Как настроить элемент CollectionType()?

Этот раздел документации Symfony2 показывает замечательную технику настройки отдельного поля. Я использую его много, но есть один конкретный 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 %}

Но как настроить каждый элемент коллекции? И как вы можете настроить data-prototype с помощью Twig (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 %}

Ни один из них не работает.


person greg0ire    schedule 17.11.2011    source источник
comment
Что вы имеете в виду под настройкой прототипа данных с помощью Twig?   -  person Kristian Zondervan    schedule 17.11.2011


Ответы (1)


Я задал вопрос в системе отслеживания ошибок symfony, и похоже, что решения нет, но хорошим обходным путем является создание собственного типа для каждого подполя, которое вы хотите настроить. См. эту проблему.

person greg0ire    schedule 17.11.2011