【问题标题】:method return html symfony2方法返回 html symfony2
【发布时间】:2013-07-18 01:41:42
【问题描述】:

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

【问题讨论】:

    标签: php symfony twig symfony-2.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 转义策略),使用原始过滤器的变量除外:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 2015-04-21
      相关资源
      最近更新 更多