2013-01-15 164 views
11

自动ヶ辆我使用显示嫩枝在我的数据库中检索某些变量:Symfony2的:用嫩枝

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

的事情是这个变量可能包含HTML标签,如“<br />”。

当显示变量时,树枝似乎会自动调用一些类似htmlentities的函数。

有没有什么方法来禁用它,这样,当我显示包含变量 “Hello<br />world !” 我得到:

Hello 
world ! 

而不是:

Hello<br />world ! 

感谢

回答

20

使用{{ my_variable|raw }}到防止my_variable被自动转义。

见嫩枝文档:http://twig.sensiolabs.org/doc/filters/raw.html

+0

正是我所需要的,谷歌没有给我那个过滤器......或者我只是没有做出好的搜索;)无论如何谢谢(我在10分钟内接受) – Yoot

+0

哇,我最近爱上了Symfony2,因为这样的事情。非常容易使用。 – Donovan

1

甚至更​​好:{{ '<br />|raw('html') }}避免进行反向转义其它敏感的东西。

+0

'html'看起来像是'raw'的默认策略:https://github.com/fabpot/Twig/blob/master/lib/Twig/Extension/Escaper.php你能否提供一些文档或这个例子用法? – Damien

+0

您也可以传递'js'或其他可调用的函数。 – Florian

2

尝试使用此

{% autoescape false %}{{ my_variable}}{% endautoescape %} 
+0

帮助我了解包含html实体的变量 –

0

如果你只是想在存储在数据库中的文字使用换行符但不关心使用HTML,你也可以使用nl2br过滤器在{{ var|nl2br }}。允许您在文本中使用字符串换行符\n。过滤器将其转换为<br/>