Включение элемента id или переменной из другого шаблона TWIG
Я освоил основы использования TWIG для создания своего сайта. Я полагаю, я знаю, как использовать {%extend%}
{%block%}
{%include%}
а также {%set%}
в самом общем смысле.
Я хотел бы включить блок кода из другого файла ветки, не включая весь файл - в отличие от {% include 'file.twig' %}
,
Я понял, как установить переменную в file.twig
и вывести его с помощью {{ variable | raw }}
, Я хотел бы сделать это в другом файле, как вы бы с использованием jQuery's .load
функция.
Я клянусь, что документация по веткам, кажется, не затрагивает это, это кажется действительно очевидной и основной функциональностью. Я возился с различными комбинациями, включающими, для, с, внутри и только, двоеточия и запятые и все, что угодно | есть и ничего.
1 ответ
Я считаю, что вы ищете горизонтальное наследование через 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