У меня есть несколько «виджетов», которые я использую в форме Symfony. Это поле datepicker, поле colorpicker, поле для фантазии и тому подобное. Я держу шаблон для каждого из них в отдельном файле Twig, например, так:Добавление новых блоков в шаблон Twig
# start of color_widget.html.twig
{% block color_widget %}
<div id="{{ id }}" class="input-group colorpicker-component">
<span class="input-group-addon"><i></i></span>
<input type="text" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %} class="form-control" />
</div>
<script>
$(function() {
$('#{{ id }}').colorpicker();
});
</script>
{% endblock %}
# end of color_widget.html.twig
Теперь, в текущей обстановке я должен держать все, что блоки в один большой шаблон. Но я хотел бы сделать цикл для включения определенных блоков из этих отдельных файлов. В сущности, я пытаюсь подставляя:
{% use "@CoreWidgets/color/widget.html.twig" %}
{% use "@CoreWidgets/date_picker/widget.html.twig" %}
{% use "@OtherWidget/widget.html.twig" %}
с чем-то вроде этого:
{% for widget in _widgets %}
{% use widget.path %}
{% endfor %}
Но использование тега не поддерживает переменные не работает.
Мне нужен такой подход, потому что я хотел бы иметь красивые пакеты виджета - хранить в одном месте CSS, JS, Twig шаблоны (один для элемента формы, а другой для элемента страницы, отображающий информацию о сущности). Тогда я мог бы определить, что пакеты в файле конфигурации и все они аккуратно установлены и сохранены.
Есть ли способ сделать это?