Подтвердить что ты не робот

Symfony2: автоматические htmlentities с помощью Twig

Я показываю некоторую переменную, полученную в моей базе данных с помощью Twig:

<p>{{ my_variable }}</p>

Вещь в эту переменную может содержать теги html, такие как "<br />".

Кажется, что Twig автоматически вызывает некоторую функцию, похожую на htmlentities, при отображении переменных.

Есть ли способ отключить его, чтобы при отображении переменной, содержащей "Hello<br />world !", я получаю:

Hello 
world !

а не:

Hello<br />world !

Спасибо

4b9b3361

Ответ 1

Используйте {{ my_variable|raw }}, чтобы предотвратить автоматическое экранирование my_variable.

Смотрите документацию Twig: http://twig.sensiolabs.org/doc/filters/raw.html

Ответ 2

Попробуйте использовать

{% autoescape false %}{{ my_variable}}{% endautoescape %}

Ответ 3

еще лучше: {{ '<br />|raw('html') }}, чтобы избежать снятия других разумных вещей.

Ответ 4

Если вы просто хотите использовать строки в тексте, хранящемся в вашей базе данных, но не хотите использовать html, вы также можете использовать фильтр nl2br, как в {{ var|nl2br }}. Позволяет использовать символ строки строки \n в тексте. Фильтр преобразует его в <br/>