【发布时间】:2015-01-22 19:40:41
【问题描述】:
我编写了自己的输出 HTML 的 Twig 函数,因此我将 is_safe 设置为 html,以便 Twig 知道不要逃避我的函数的输出。
但是,我的函数需要参数。其中一个参数直接放在输出中。我想在输出之前转义它。所以看来我只需要能够在输出之前手动转义选项值。
我找不到如何做到这一点。有人知道吗?
【问题讨论】:
-
你能提供一些代码吗?
我编写了自己的输出 HTML 的 Twig 函数,因此我将 is_safe 设置为 html,以便 Twig 知道不要逃避我的函数的输出。
但是,我的函数需要参数。其中一个参数直接放在输出中。我想在输出之前转义它。所以看来我只需要能够在输出之前手动转义选项值。
我找不到如何做到这一点。有人知道吗?
【问题讨论】:
诀窍是存储 twig 环境,然后将其传递给 twig_escape_filter
class TournExtension extends \Twig_Extension
{
protected $env;
public function initRuntime(\Twig_Environment $env)
{
parent::initRuntime($env);
$this->env = $env;
}
protected function escape($string)
{
return twig_escape_filter($this->env,$string);
}
【讨论】:
pre_escape。 twig.sensiolabs.org/doc/advanced.html#functions