在Symfony视图中回显时,防止HTML标记自动转义

时间:2012-03-13 18:43:57

标签: php symfony1 escaping symfony-1.4

我有一个数据库,它从WYWSWIG启用的textarea中获取数据,这基本上意味着很多文本区域都是HTML标记编码的,而不是:

info data text info data text stored in the table column, I have <p>info data<strong>info data</strong><em>text</em></p> encoded in there.

执行db查询(使用Doctrine)时,此信息将保留在我的操作中,并包含在传递给模板的变量中。此时,在渲染时,标记将被保留...为了说明,文本不会使用所需的HTML标记效果进行渲染,而是使用标记进行渲染。这显然意味着发生了一个角色逃脱。

我不确定如何缓解此问题。但我确实找到了一个暂时可以满足的临时解决方案。我在模板中执行Doctrine查询而不是操作。在这种情况下,没有发生转义,所需的HTML标记呈现自己。这一点的明显含义是,当查询变量从动作传递到模板时,会发生某种内部Symfony字符转义。

1 个答案:

答案 0 :(得分:2)

Symfony默认包装传递给sfOutputEscaper实例中视图的所有变量。要获取未转义的值,请在视图中回显$var->getRawValue()