Dynamically Accessing Twig Variable Names
Accessing variables with dynamic names in Twig can be a challenge. Consider the following scenario:
<p>placeholder1 placeholder2 placeholderx </p> <pre class="brush:php;toolbar:false">{% for invoices as invoice %} need to display here the placeholder followed by the invoice id number {{ placeholedr1 }}
Accessing Variables with Context Array
Instead of using the attribute function, you can access variable values in the _context array using bracket notation:
{{ _context['placeholder' ~ id] }}
This option is more concise and arguably clearer.
Strict Variable Checks
When strict_variables is set to true in the environment options, you may encounter errors for non-existent variables. To handle this, use the default filter:
{{ _context['placeholder' ~ id]|default }} {{ attribute(_context, 'placeholder' ~ id)|default }}
Checking Variable Existence
To check if a variable exists before accessing it, use the defined test:
{% if _context['placeholder' ~ id] is defined %} ... {% endif %}
Default Values with the default Filter
Provide a default value in case the variable doesn't exist using |default:
{{ _context['placeholder' ~ id]|default(null) }} {{ attribute(_context, 'placeholder' ~ id)|default('Default value') }}
The above is the detailed content of How to Dynamically Access Twig Variable Names?. For more information, please follow other related articles on the PHP Chinese website!