Symfony2 использует некоторые шаблоны для завивки при создании форм. В частности, для того, чтобы визуализировать выбор поле формы разрушилось, Symfony2 использует следующий фрагмент кода (от form_div_layout.html.twig):Symfony2 twig forms
{%- block choice_widget_collapsed -%}
{%- if required and placeholder is none and not placeholder_in_choices and not multiple -%}
{% set required = false %}
{%- endif -%}
<select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}>
{%- if placeholder is not none -%}
<option value=""{% if required and value is empty %} selected="selected"{% endif %}>{{ placeholder != '' ? placeholder|trans({}, translation_domain) }}</option>
{%- endif -%}
{%- if preferred_choices|length > 0 -%}
{% set options = preferred_choices %}
{{- block('choice_widget_options') -}}
{%- if choices|length > 0 and separator is not none -%}
<option disabled="disabled">{{ separator }}</option>
{%- endif -%}
{%- endif -%}
{%- set options = choices -%}
{{- block('choice_widget_options') -}}
</select>
{%- endblock choice_widget_collapsed -%}
В моем приложении, я хочу, чтобы создать новый тип формы, который расширяет тип по умолчанию для свертывания по умолчанию, но там, где у списка выбора есть собственное форматирование.
Другими словами, для моего типа поля формы, названный places_widget, простирающейся choice_widget_collapsed блок, но переосмысление choice_widget_options.
Я уже пробовал:
/* My first attempt */
{%- block places_widget -%}
{% block choice_widget_options %}
{{ block('choice_places_widget_options') }}
{% endblock choice_widget_options %}
{{ block('choice_widget_collapsed') }}
{%- endblock places_widget -%}
/* My other attempt */
{%- block places_widget -%}
{{ block('choice_widget_collapsed', { 'choice_widget_options' => choice_places_widget_options }) }}
{%- endblock places_widget -%}
/* together with */
{%- block choice_places_widget_options %}
// code here
{%- endblock choice_places_widget_options -%}
Ни один из этих двух решений не работает, а на самом деле у меня есть чувство, что я делаю вещи в неправильном направлении.
Есть ли у кого-нибудь идеи о том, как достичь цели? Спасибо заранее
Вы фактически используете {% - -%} в качестве тегов? –