2017-04-11 2 views
1

Ich versuche, Zugriff auf eine Twig Extention-Funktion, die ich geschrieben habe, zu erhalten.Access Twig Extention Funktion in Zweigansicht

// 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'; 
    } 
} 

Jetzt versuche ich durch {{ testMethod() }} die funtion zugreifen zu können, aber ich erhalte den folgenden Fehler:

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

ich den Cache gelöscht und versucht, den Fehler zu suchen, aber ich fand nichts, was half mir. Vielleicht kann hier jemand helfen.

Antwort

1

Sie definieren Ihre Twig_Function falsch, so wie es jetzt aussieht, haben Sie Twig gesagt, nach einer global function zu suchen, die außerhalb jeder Klasse definiert ist.

Wenn Sie Twig sagen wollen innerhalb der aktuellen Klasse zu suchen, können Sie dies mit:

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

Ah ok, ja, in meinem Fall habe ich die '' Twig_SimpleFunction'' verwenden. Vielen Dank! – mgluesenkamp