在 Twig 视图中访问 Twig Extension 功能

Access Twig Extention function in Twig view

我尝试访问我编写的 Twig Extention 函数。

// AppBundle/Twig/AppExtention.php

namespace AppBundle\Twig;

class AppExtension extends \Twig_Extension
{
  public function getFunctions() {
    return [
      new \Twig_Function('testMethod', 'testMethod'),
    ];
  }

  public function testMethod() {
    return 'blubb';
  }
}

现在我尝试通过 {{ testMethod() }} 访问函数,但出现以下错误:

UndefinedFunctionException in <Hex for cached view>.php line 68: Attempted to call function "testMethod" from the global namespace.

我清除了缓存并尝试搜索错误,但没有找到任何帮助。也许这里有人可以提供帮助。

你定义你的 Twig_Function 是错误的,就目前而言,你告诉 Twig 寻找 global function,定义在任何 class.[=15 之外=]

如果你想告诉 Twig 查看当前 class 的内部,你可以这样做:

public function getFunctions() {
    return [
        new \Twig_SimpleFunction('testMethod', array($this, 'testMethod')),
    ];
}