如何在TWIG中访问宏中的_context变量?

Cha*_*lie 8 php macros twig

我正在尝试访问宏中的一个twig变量.我知道我不能直接这样做.

与PHP函数一样,宏无法访问当前模板变量

但是相同的页面状态:

您可以使用特殊的_context变量将整个上下文作为参数传递.

将_context传递给宏以及在宏中访问宏的语法是什么?

谢谢

Ala*_*blo 13

请考虑以下示例:

1)在当前上下文中创建变量

{% set x = 42 %}
Run Code Online (Sandbox Code Playgroud)

2)声明一个以对象作为参数的宏

{% macro test(variables) %}
   variable x = {{ variables.x | default('undefined') }}
{% endmacro %}
Run Code Online (Sandbox Code Playgroud)

3)使用特殊_context对象调用宏

{{ _self.test(_context) }}
Run Code Online (Sandbox Code Playgroud)

这将显示:

变量x = 42