Spec-Zone.ru › Twig 1

include

Утверждение include включает шаблон и выводит отрендеренное содержимое этого файла:

{% include 'header.html' %}
    Body
{% include 'footer.html' %}

Примечание

Начиная с Twig 1.12, рекомендуется использовать функцию include, поскольку она предоставляет те же возможности с большей гибкостью:

  • Функция include семантически более «правильная» (включение шаблона выводит его отрендеренное содержимое в текущем контексте; тег не должен отображать ничего);

  • Использование функции include упрощает сохранение отрендеренного шаблона в переменной:

    {% set content %}{% include 'template.html' %}{% endset %}
    
    {# vs #}
    
    {% set content = include('template.html') %}
    
  • Функция include не навязывает никакого определённого порядка аргументов благодаря именам аргументов.

Включенные шаблоны имеют доступ к переменным активного контекста.

Если вы используете загрузчик файлов, шаблоны ищутся в путях, определённых им.

Вы можете добавить дополнительные переменные, передав их после ключевого слова %%%CODE_BLOCK_6%%:

{# template.html will have access to the variables from the current context and the additional ones provided #}
{% include 'template.html' with {'foo': 'bar'} %}

{% set vars = {'foo': 'bar'} %}
{% include 'template.html' with vars %}

Вы можете отключить доступ к контексту, добавив ключевое слово %%%CODE_BLOCK_8%%:

{# only the foo variable will be accessible #}
{% include 'template.html' with {'foo': 'bar'} only %}
{# no variables will be accessible #}
{% include 'template.html' only %}

Подсказка

При включении шаблона, созданного конечным пользователем, следует рассмотреть возможность его изоляции. Более подробная информация в главе Twig для разработчиков и в документации тега sandbox.

Имя шаблона может быть любым допустимым выражением Twig:

{% include some_var %}
{% include ajax ? 'ajax.html' : 'not_ajax.html' %}

И если выражение вычисляется в \Twig\Template или \Twig\TemplateWrapper экземпляр, Twig будет использовать его напрямую:

// {% include template %}

// deprecated as of Twig 1.28
$template = $twig->loadTemplate('some_template.twig');

// as of Twig 1.28
$template = $twig->load('some_template.twig');

$twig->display('template.twig', ['template' => $template]);

Новое в версии 1.2: Функция ignore missing была добавлена в Twig 1.2.

Вы можете пометить включение с помощью %%%CODE_BLOCK_16%%, в этом случае Twig проигнорирует утверждение, если включаемый шаблон не существует. Он должен быть размещён непосредственно после имени шаблона. Вот несколько допустимых примеров:

{% include 'sidebar.html' ignore missing %}
{% include 'sidebar.html' ignore missing with {'foo': 'bar'} %}
{% include 'sidebar.html' ignore missing only %}

Новое в версии 1.2: Возможность передачи массива шаблонов была добавлена в Twig 1.2.

Вы также можете предоставить список шаблонов, которые проверяются на существование перед включением. Первый существующий шаблон будет включён:

{% include ['page_detailed.html', 'page.html'] %}

Если ignore missing указано, в случае отсутствия какого-либо шаблона будет отображено пустое содержимое, иначе будет выброшено исключение.

« import | macro »

© 2009–2018 by the Twig Team
Licensed under the three clause BSD license.
The Twig logo is © 2010–2020 Symfony
https://twig.symfony.com/doc/1.x/tags/include.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API