Twig

The flexible, fast, and secure
template engine for PHP

a Symfony Product
You are reading the documentation for Twig 2.x. Switch to the documentation for Twig 1.x, 3.x.
Warning Twig version 2.x is no longer maintained.

Questions & Feedback

License

Twig documentation is licensed under the new BSD license.

raw

The raw filter marks the value as being "safe", which means that in an environment with automatic escaping enabled this variable will not be escaped if raw is the last filter applied to it:

1
2
3
{% autoescape %}
    {{ var|raw }} {# var won't be escaped #}
{% endautoescape %}

Note

This note only applies to Twig before versions 1.39 and 2.8.

Be careful when using the raw filter inside expressions:

1
2
3
4
5
6
7
8
9
10
{% autoescape %}
    {% set hello = '<strong>Hello</strong>' %}
    {% set hola = '<strong>Hola</strong>' %}

    {{ false ? '<strong>Hola</strong>' : hello|raw }}
    does not render the same as
    {{ false ? hola : hello|raw }}
    but renders the same as
    {{ (false ? hola : hello)|raw }}
{% endautoescape %}

The first ternary statement is not escaped: hello is marked as being safe and Twig does not escape static values (see escape). In the second ternary statement, even if hello is marked as safe, hola remains unsafe and so is the whole expression. The third ternary statement is marked as safe and the result is not escaped.