【发布时间】:2016-09-10 21:03:17
【问题描述】:
我遇到了这样一种情况,即发送到我的 Twig 模板的一些变量是普通的旧变量,所以我希望它们是 html 转义的(这是默认行为)。但是发送到我的模板的其他变量实际上是带有 __toString() 渲染器的对象......其中一些对象发送原始 HTML(例如,来自 TinyMCE 或 CKEditor 等所见即所得编辑器)。
理想情况下,我希望我的模板设计者不必对对象使用 |raw 过滤器,而是让对象以某种方式告诉 Twig 它们已经被转义。
换句话说,我试图模仿设置is_safe 的 Twig 函数的行为,但不需要模板设计者使用函数。
例如我可以在其定义中使用 is_safe 参数编写一个 Twig 函数,并且可以在我的模板中使用它:
{{ figure_out_what_to_do(something) }}
(figure_out_what_to_do 知道检查“某物”对象以确定它是否需要转义)。但对我来说,这并不比记住在“某物”的每次输出后加上|raw 更好。因此,我希望能够做到这一点:
{{ something }}
...让 Twig 识别出 something 是一个对象,因此询问它是否需要转义。
我猜答案是“不”,但我想我会问一下,以防更了解 Twig 内部结构的人对我有任何指点。
谢谢。
【问题讨论】:
标签: twig