0

我尝试像这样在 symfony2 中发送一个 html 代码:

public function testAction()
{
  $html = '<input type="text">'
  return $this->render('TestBundle:Default:index.htlm.twig',array(
  'html' => $html,
  ));
}

当我像这样在页面 index.html.twig 中使用 html 变量时:{{ html }}结果是

<input type="text">

但我不想要这个结果。我想要的结果是页面 index.html.twig 向我显示输入(文本区域)。

4

1 回答 1

1

文档的答案:http: //twig.sensiolabs.org/doc/api.html#escaper-extension

转义器扩展将自动输出转义添加到 Twig。它定义了一个标签 autoescape 和一个过滤器 raw。

创建转义器扩展时,可以打开或关闭全局输出转义策略:

$escaper = new Twig_Extension_Escaper('html');
$twig->addExtension($escaper);

如果设置为 html,模板中的所有变量都会被转义(使用 html 转义策略),除了那些使用 raw 过滤器的变量:

{{ article.to_html|raw }}

您还可以使用 autoescape 标签在本地更改转义模式(有关 Twig 1.8 之前使用的语法,请参阅 autoescape 文档):

{% autoescape 'html' %}
    {{ var }}
    {{ var|raw }}      {# var won't be escaped #}
    {{ var|escape }}   {# var won't be double-escaped #}
{% endautoescape %}
于 2013-07-17T17:38:16.343 回答