Я освоил основы использования TWIG для создания своего сайта. Я полагаю, я знаю, как использовать {%extend%}
{%block%}
{%include%}
а также {%set%}
в самом общем смысле.
Я хотел бы включить блок кода из другого файла ветки, не включая весь файл — в отличие от {% include 'file.twig' %}
,
Я понял, как установить переменную в file.twig
и вывести его с помощью {{ variable | raw }}
, Я хотел бы сделать это в другом файле, как вы бы с использованием jQuery’s .load
функция.
Я клянусь, что документация по веткам, кажется, не затрагивает это, это кажется действительно очевидной и основной функциональностью. Я возился с различными комбинациями, включающими, для, с, внутри и только, двоеточия и запятые и все, что угодно | есть и ничего.
Я считаю, что вы ищете горизонтальное наследование через use
тег:
Оператор use указывает Twig импортировать блоки, определенные в blocks.html, в текущий шаблон (это похоже на макросы, но для блоков)
Запутанная часть заключается в том, что само по себе, {% use ...
на самом деле не вставит содержание блоков в указанном шаблоне. Для этого вы должны использовать block(...)
функция:
index.twig
{% use "blocks.twig" %}
{{ block('name') }}
blocks.twig
{% block name %}
<h1>Alex Weissman</h1>
{% endblock %}
{% block hobby %}
<p>Blanchin'</p>
{% endblock %}
Для рабочего примера посмотрите мой TwigFiddle (да, это реальная вещь!): http://twigfiddle.com/jjbfug
Других решений пока нет …