Включение элемента 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

Другие вопросы по тегам