方法返回html symfony2

时间:2013-07-17 17:31:55

标签: php symfony twig symfony-2.1

我尝试在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显示输入(文本区域)。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

如果设置为html,模板中的所有变量都会被转义(使用html转义策略),但使用原始过滤器的变量除外:

{{ 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 %}