2013-09-23 43 views
0

我想將模板渲染到symfony控制器中的字符串並避免轉義。 我不想讓小枝在全球範圍內流竄。 在模板本身中應用|raw過濾器的種類,但是來自控制器。在Symfony控制器中呈現原始HTML

我想象像

$rendered_unescaped = $this->container->get('templating') 
     ->render($templatehere, $paramshere, 
      array('autoescape'=>false)); 

順便說一句,我一廂情願地嘗試以前沒有運氣確實如此。

這需要apears,當我想添加一個html塊到ajax json響應,並且意識到我正在獲得所有的htmlentities。

感謝, 哈維爾

+0

你確定,該字符串被'twig'而不是'javascript'轉義 – ferdynator

+0

我認爲你是對的。我已經進行了進一步測試,實際上並沒有在symfony方面逃脫。想想我應該刪除帖子。 – javigzz

+0

離開後,我錯誤地使用jQuery .text()而不是.html()來查看相同的內容... – sglessard

回答

1

您可以使用autoescape標籤

{ 
    "foo": { 
     "html": "{% autoescape false %}<p>Yo, <span>{{ name }}</span>, I'm real happy for you, and Imma let you finish...</p>{% endautoescape %}" 
    } 
} 

而且,我沒有測試過這一點,但你可以改變枝條模板的默認策略。

$this->container->get('templating')->getExtension('escaper')->setDefaultStrategy(false); 
+0

感謝Adam。在第一個選項中,你必須編輯模板(所以沒有什麼後)。我測試了第二個。出現錯誤,但是如果您更改「樹枝」的「模板」,則會出現問題。仍然不適合我...因爲我擔心我可能錯過了這個問題。現在我認爲是在js方面。對不起:-(。我的壞 – javigzz

+0

@ javigzz沒問題,我實際上學到了一些東西,反正看這件事;) –