【发布时间】:2012-09-29 21:54:36
【问题描述】:
假设我创建了一个自定义 twig 函数:templateName。
$twig = new Twig_Environment($loader);
$twig->addFunction('templateName', new Twig_Function_Function('twig_template_name', array('needs_environment' => true)));
有没有办法在 php.ini 中获取当前模板的名称。我想像这样:
function twig_template_name(Twig_Environment $env, $values = null) {
return $env->getCurrentTemplateName();
}
提前致谢。
【问题讨论】:
-
1.这不是您创建树枝函数的方式(请参阅twig.sensiolabs.org/doc/advanced.html#id2)。 2. 如果您在模板中调用它,返回模板名称的函数的值是多少?
-
嗨。该代码仅用于说明,但感谢您的输入,我更新了问题以便更好地理解。 @2:我想发送一个 ajax 请求,它呈现完全相同的模板。
-
您计划从 javascript 发送模板名称。由于它在客户端,因此不安全(客户端可以更改要呈现的模板名称)。我认为您应该重新考虑设计控制器/模板的方式。不知何故,您可以决定在生成页面时呈现哪个模板。调用ajax时使用相同的逻辑。
-
我认为这不是安全问题。如果有人想改变浏览器显示页面的方式,有更简单的方法。但你是对的,它不是一个干净的。也许你可以告诉我一个更好的方法,当我更精确的时候。该函数呈现一些内容和一个编辑链接。用户可以内联编辑内容,并通过 ajax 将其存储在数据库中。现在我希望重新加载这个特殊的内容,而不是重新加载整个页面。我最初的想法是再次渲染相同的模板,剪下修改后的内容并将其发送回去。也许你有更好的想法来实现这一点。