2013-01-15 208 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/>