0

テンプレートを symfony コントローラーの文字列にレンダリングし、エスケープを回避したいと考えています。小枝のエスケープをグローバルに無効にしたくありません。|rawテンプレート自体にフィルターを適用するようなものですが、コントローラーからです。

のようなものを想像します

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

ところで、私は願いを込めて前のものを試してみましたが、実際には運がありませんでした.

この必要性は、html チャンクを ajax json 応答に追加したいときに発生し、htmlentities があちこちにあることに気付きます。

ありがとう、ハビエル

4

1 に答える 1

1

autoescapeタグを使用できます

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

また、私はこれをテストしていませんが、Twig テンプレートのデフォルト戦略を変更できます。

$this->container->get('templating')->getExtension('escaper')->setDefaultStrategy(false);
于 2013-09-23T19:34:33.273 に答える