Função de inclusão
A função
include retorna o conteúdo renderizado de um modelo:
{{ include('template.html') }}
{{ include(some_var) }}
Os modelos incluídos têm acesso às variáveis do contexto ativo.
Se você estiver usando o carregador do sistema de arquivos, os modelos são procurados nos caminhos por ele definidos.
O contexto é passado por padrão para o modelo, mas você também pode passar variáveis adicionais:
{# template.html will have access to the variables from the current context and the additional ones provided #}
{{ include('template.html', {foo: 'bar'}) }}
Você pode desativar o acesso ao contexto configurando with_context para false:
{# only the foo variable will be accessible #} {{ include('template.html', {foo: 'bar'}, with_context = false) }}
{# no variables will be accessible #} {{ include('template.html', with_context = false) }}
E se a expressão for avaliada como uma \Twig\Template ou uma \Twig\TemplateWrapper instância, o Twig a usará diretamente:
// {{ include(template) }}
$template = $twig->load('some_template.twig');
$twig->display('template.twig', ['template' => $template]);
Quando você definir o sinalizador ignore_missing , o Twig retornará uma string vazia se o modelo não existir:
{{ include('sidebar.html', ignore_missing = true) }}
Você também pode fornecer uma lista de modelos cuja existência é verificada antes da inclusão. O primeiro modelo que existe será renderizado:
{{ include(['page_detailed.html', 'page.html']) }}
Se
ignore_missing estiver definido, ele não renderá nada se nenhum dos modelos existir, caso contrário, ele lançará uma exceção.
Ao incluir um modelo criado por um usuário final, você deve considerar colocá-lo em sandbox:
{{ include('page.html', sandboxed = true) }}
Argumentos
template: O modelo a ser renderizado
variables: As variáveis a serem passadas para o modelo
with_context: Se deve passar as variáveis de contexto atuais ou não
ignore_missing: Se deve ignorar os modelos ausentes ou não
sandboxed: Se deve ser feito o sandbox do modelo ou não
Ficou com alguma dúvida? Entre em contato através do nosso chat online.