编程语言
首页 > 编程语言> > php-如何在TWIG函数中获取当前模板名称

php-如何在TWIG函数中获取当前模板名称

作者:互联网

假设我创建了一个自定义的树枝函数:templateName.

$twig = new Twig_Environment($loader);
$twig->addFunction('templateName', new Twig_Function_Function('twig_template_name', array('needs_environment' => true)));

有没有办法在php中获取当前模板的名称.我想象这样的事情:

function twig_template_name(Twig_Environment $env, $values = null) {
  return $env->getCurrentTemplateName();
}

提前致谢.

解决方法:

对于每个需要回答最初问题的人,我都在Twig_Error类中找到了twig本身正在使用的解决方案.

protected function guessTemplateInfo()
{
    $template = null;
    foreach (debug_backtrace() as $trace) {
        if (isset($trace['object']) && $trace['object'] instanceof Twig_Template && 'Twig_Template' !== get_class($trace['object'])) {
            $template = $trace['object'];
        }
    }

    // update template filename
    if (null !== $template && null === $this->filename) {
        $this->filename = $template->getTemplateName();
    }

    /* ... */

最好的祝福!

标签:symfony,twig,php
来源: https://codeday.me/bug/20191031/1978745.html