Шаблоны пользовательских коллекций в symfony2

Можно ли добавить настраиваемые глобальные шаблоны для элементов в форме формы коллекции?

Я не хочу настраивать сам шаблон коллекции, но рендеринг каждого объекта в коллекции, например, для добавления определенного класса или разметки для каждого объекта, содержащегося в коллекции.

У меня есть форма с полем сбора, добавленным вот так:

$builder ->add('items', 'collection', array( 'type' => new ItemType(), 'allow_add' => true, 'allow_delete' => true, 'prototype' => true )); 

Я хочу определить шаблон ветки, чтобы добавить кнопку «удалить» для каждого элемента в коллекции (между прочим).

Я нашел, что есть шаблон 'collection_widget' для настройки коллекций, купите это только для самой коллекции, а не для отдельных элементов.

ПРИМЕЧАНИЕ 1. Мне нужно использовать глобальный шаблон, чтобы сделать это для всех коллекций во всех формах, я знаю, что могу решить это для каждого шаблона формы, но это не главное.

ПРИМЕЧАНИЕ 2. До сих пор я решил это с помощью jquery, добавив класс в collection_widget и добавив кнопки для всех его дочерних элементов с jquery. На данный момент это отлично работает, но я ищу 100% -ное решение для шаблонов, без необходимости выполнять всю обработку jquery. В идеале это также должно работать с прототипом строки для добавления новых элементов.

Наконец, я нашел хорошее решение. Во-первых, мне пришлось создать собственный шаблон collection_widget (скопированный из generic form_widget) и внутри, вместо вызова блока form_rows я вызываю блок collection_rows, который является настройкой блока form_rows. Внутри блока collection_rows вы можете настроить все, что хотите, я просто добавил пользовательский класс для каждого ребенка.

Вот два шаблона:

 {% block collection_widget %} {% spaceless %} <div {{ block('widget_container_attributes') }}> {{ block('collection_rows') }} {{ form_rest(form) }} </div> {% endspaceless %} {% endblock collection_widget %} {% block collection_rows %} {% spaceless %} {{ form_errors(form) }} {% for child in form %} {{ form_row(child, {'attr':{'class':'collection-item'}}) }} {% endfor %} {% endspaceless %} {% endblock collection_rows %}