【发布时间】:2014-09-04 13:55:25
【问题描述】:
我在我的 Symfony 项目中使用 Twig。
Symfony 应该启用autoescape by default。但是默认情况下它不会这样做,并且在我手动启用它之后它仍然无法工作。
我已将 Twig 配置为自动转义我的所有变量。
twig:
autoescape: true
但这不会过滤任何东西。 HTML 和 JavaScript 都没有转义。
没有自定义 autoescape_service,我没有使用 |raw 或 { autoescape false } 过滤变量。
我已经仔细检查了生成的配置,以确保该值没有被覆盖。 在 twig 服务定义下的 app/cache/dev/appDevDebugProjectContainer.xml 中,参数如下:
<argument key="debug">true</argument>
<argument key="strict_variables">false</argument>
<argument key="cache">false</argument>
<argument key="autoescape">true</argument>
<argument key="exception_controller">twig.controller.exception:showAction</argument>
<argument key="autoescape_service">null</argument>
<argument key="autoescape_service_method">null</argument>
<argument key="charset">UTF-8</argument>
Twig 是否有另一种方法覆盖我缺少的自动转义选项?或者我该如何强制启用它?
【问题讨论】:
-
你输出什么?模板变量? Twig 扩展功能?
-
模板变量,实体被传递给视图,并且经常打印属性。像 {{ message.content }}