Я создал два настраиваемых типа форм в Symfony2 и соответствующие им шаблоны веток. Читая документацию, я заметил, что ветка называется "fields.html" .twig ". Это заставило меня поверить, что я могу определить несколько блоков в одном файле, но я не понимаю, как? Вот мой текущий файл fields.html.twig:

{% block open_range_widget %}
    <div class="open_range_widget" style="display: inline;">
        <div class="field" style="display: inline;">
            {{ form_errors(form.sel) }}
            {{ form_widget(form.sel) }}
        </div>
        <div class="field" style="display: inline;">
            {{ form_errors(form.val) }}
            {{ form_widget(form.val) }}
        </div>
    </div>
{% endblock %}

{% block range_widget %}
    <div class="range_widget" >
        <div class="field" style="display: inline; width: 50%">
            {{ form_errors(form.min) }}
            {{ form_widget(form.min) }}
        </div>
        <div class="field" style="display: inline; width: 50%">
            {{ form_errors(form.max) }}
            {{ form_widget(form.max) }}
        </div>
    </div>
{% endblock %}
0
ecc 26 Авг 2014 в 20:40
Что не так с тем, что у вас есть? Вы получаете ошибки? Вы просто не знаете, как указать Symfony использовать этот файл?
 – 
Chase
26 Авг 2014 в 22:14

1 ответ

Лучший ответ

Если вы заглянете внутрь 'vendor / symfony / symfony / bridge / Twig / resources / views / form /', вы заметите файл с именем form_div_layout.html, загляните внутрь, и вы заметите, что вся коллекция стандартных виджетов формы Symfony2 содержится здесь. Итак, да, вы можете определить столько блоков, сколько захотите, в файле шаблона. Хотя лучше держать вещи немного отдельно. Скажем, у вас есть 2 разных стиля для виджета выбора в зависимости от формы, вам нужно, чтобы 2 шаблона определяли их.

Вы даже можете скопировать весь поставляемый шаблон в App / Resources / Views / Form / form_div_layout.html и внести изменения прямо там. Однако это может привести к созданию сложного и запутанного файла шаблона с МНОГИМИ ненужными блоками.

1
Doug 27 Авг 2014 в 12:31
Я взглянул на это, и вы правы. Возможно, я делал что-то не так. Для одностраничного веб-приложения это нормально. Спасибо
 – 
ecc
28 Авг 2014 в 12:56