我有一个数据库,它从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字符转义。