2017-04-11 2 views
1

J'essaie d'accéder à une fonction d'extension de brindille que j'ai écrite.Fonction d'extension de brindilles d'accès dans la vue brindille

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

Maintenant, je tente d'accéder à la funtion par {{ testMethod() }}, mais je reçois l'erreur suivante:

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

je franchis le cache et essayé de rechercher l'erreur, mais je ne trouve rien que m'a aidé. Peut-être que quelqu'un peut aider ici.

Répondre

1

Vous définissez votre Twig_Function erroné, tel qu'il se présente maintenant, vous avez demandé à Twig de rechercher un global function, défini en dehors de toute classe.

Si vous voulez dire Twig regarder à l'intérieur de la classe actuelle, vous pouvez le faire avec:

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

Ah ok, oui, dans mon cas, je dois utiliser le '' Twig_SimpleFunction''. Je vous remercie! – mgluesenkamp