How do I access the _context variable within a macro in TWIG?
You could also use the varargs property of the macro (handy if you don't want to stipulate a parameter in the macro):
I assume you have a few twig vars stipulated in your template.
{%set bodyType = "skinny" %}
With any twig macro you pass in the _context as the final argument.
{{ _self.MyAmazaingMacroThatDoesEverything("french fries",_context)
in the macro:
{% macro MyAmazaingMacroThatDoesEverything(healthyFood) %} variable yourTwigPageVar = {{ varargs[0].bodyType | default('undefined') }} <h1>I like {{healthyFood}}, eating them that makes me {{yourTwigPageVar}}</h2> {% endmacro %}
Consider the following example:
1) Create a variable in the current context
{% set x = 42 %}
2) Declare a macro that takes an object as parameter
{% macro test(variables) %}
variable x = {{ variables.x | default('undefined') }}
{% endmacro %}
3) Call your macro, with the special _context
object
{{ _self.test(_context) }}
This will display:
variable x = 42