Запретить автоматическое экранирование тегов HTML при отображении в представлении Symfony - PullRequest
1 голос
/ 13 марта 2012

У меня есть база данных, которая получает данные из текстовой области с поддержкой WYWSWIG, что в основном означает, что большая часть текстовой области кодируется тегом HTML, например вместо:

info data text info data text stored in the table column, I have <p>info data<strong>info data</strong><em>text</em></p> encoded in there.

При выполнении запроса DB(используя Doctrine), эта информация сохраняется в моем действии и оборачивается в переменную, которая передается в шаблон.В этот момент при рендеринге теги сохраняются ... Для иллюстрации текст отображается не с желаемым эффектом разметки HTML, а с тегами как есть.Это очевидно подразумевает, что происходит побег персонажа.

Я не уверен, как решить эту проблему.Но я нашел временное решение, которого пока может хватить.Я выполняю запрос Doctrine в своем шаблоне, а не в действии.В этом случае экранирования не происходит, и желаемая разметка HTML отрисовывается сама.Очевидное следствие этого заключается в том, что когда переменная запроса передается из действия в шаблон, происходит некое внутреннее экранирование символов Symfony.

1 Ответ

2 голосов
/ 13 марта 2012

Symfony по умолчанию переносит все переменные, передаваемые в представление, в sfOutputEscaper экземпляров. Чтобы получить неэкранированное значение, выведите на экран echo $var->getRawValue().

...