В этом § документации 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 %}
Ни одна из них не работает.