2017-08-10 3 views
1

J'ai un problème pour utiliser la fonction en tant que servis dans un échantillon de brindille. Je voudrais injecter un peu du modèle dans la page, en partie, il va mal parce que la page se charge, mais à l'endroit où il doit être injecté le modèle affiche une erreurErreur lors de l'appel de la fonction dans twig, Appel à une fonction membre render() sur null, extension twig

Error: Call to a member function render() on null

Cette fonction est d'être appelé dans la page

public function printCategoriesList() { 

    $categoryRepo = $this->doctrine->getRepository('AirblogBundle:Category'); 
    $categoriestList = $categoryRepo->findAll(); 

    return $this->environment->render(
        'AirblogBundle:Template:categoriesList.html.twig', ['categoriesList' => $categoriestList] 
    ); 
} 

Ci-dessous un lien vers le reste du fichier

Plunker Files

I wo rk sur la version 2.8 de symfony

+0

En regardant les fichiers, il y a certaines choses fondamentales manquantes. Vous utilisez 'environment' comme variable de classe sans l'injecter correctement. –

Répondre

0

Retirez la fonction initRuntime de TwigExtension et essayez ceci:

public function printCategoriesList(\Twig_Environment $environment) { 

    $categoryRepo = $this->doctrine->getRepository('AirblogBundle:Category'); 
    $categoriestList = $categoryRepo->findAll(); 

    return $environment->render(
        'AirblogBundle:Template:categoriesList.html.twig', ['categoriesList' => $categoriestList] 
    ); 
} 
+0

Je l'ai déjà essayé et il montre une erreur: Une exception a été levée lors du rendu d'un template ("Erreur Fatal Catchable: L'argument 1 passé à AirblogBundle \ Twig \ Extension \ BlogExtension :: printCategoriesList() doit être une instance de Twig_Environment, aucun donné, appelé dans C: \ wamp64 \ www \ airblog \ app \ cache \ dev \ classes.php à la ligne 5305 et défini "). –

+0

Hmm confus. Je l'ai essayé sur mon projet et cela a fonctionné instantanément. Pouvez-vous fournir tout votre fichier Twig_Extension avec cette version? – Rawburner

+0

Suivez cette implemetation: http://www.lrotherfield.com/blog/symfony2-get-twig-environment-twig-extension – Rawburner