Twig 如何导入其他文件中设置的变量
我有这样的情况:Twig 如何导入其他文件中设置的变量,twig,Twig,我有这样的情况: //index.html.twig {% use 'blockdefinition.html.twig' %} {% set hello = 'world' %} {{ block('myblock') }} // blockdefinition.html.twig {# @var hello string #} {% block myblock %} {% set var_1 = 'x' ~ hello %} {# I need the env here #}
//index.html.twig
{% use 'blockdefinition.html.twig' %}
{% set hello = 'world' %}
{{ block('myblock') }}
// blockdefinition.html.twig
{# @var hello string #}
{% block myblock %}
{% set var_1 = 'x' ~ hello %} {# I need the env here #}
...
{% set var_1000 = 'y' ~ hello %}
output something {{ var_1 ~ var2 }}.
{% endblock%}
在另一个块中,我需要相同的定义:
{# @var hello string #}
{% block otherblock %}
{# same definitions as above #}
{% set var_1 = 'x' ~ hello %}
...
{% set var_1000 = 'y' ~ hello %}
output something else {{ var_1 ~ var2 }}.
{% endblock %}
我想要的是一个定义变量的文件(它需要访问env variableshello
):
然后在我的块中导入/扩展/使用它(在块中使用它很重要):
所以我正在寻找一种方法来定义变量并将它们导入另一个模板中。
use
和extends
似乎都不适合我。我经常会遇到类似于模板“mydefinitions”不能用作特征的错误
由于变量范围的限制,我不确定您是否能够实现这一点:
{% set var_1 = 'x' ~ hello %} {# I need the env here #}
...
{% set var_1000 = 'y' ~ hello %}
{% block myblock %}
{% import/include/use 'mydefinitions' %}
output something {{ var_1 ~ var2 }}.
{% endblock%}
{% block otherblock %}
{% import/include/use 'mydefinitions' %}
output something else {{ var_1 ~ var2 }}.
{% endblock %}