2017-08-10 29 views
1

我有一個問題,使用函數作爲一個樹枝樣本servis。 我想注入一些模板到頁面中,部分出了問題,因爲在頁面加載,但在它應該被注入模板中的位置彈出錯誤錯誤調用函數在樹枝,調用成員函數render()null,樹枝擴展

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

這是一個功能是堪稱網頁

public function printCategoriesList() { 

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

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

下面是對文件的其餘部分的鏈接

Plunker Files

我禾RK上的symfony版本2.8

+0

望着文件有丟失了一些根本性的東西。你正在使用'environment'作爲類變量而沒有正確注入它。 –

回答

0

從TwigExtension取出initRuntime功能,試試這個:

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

我已經嘗試過了,它顯示一個錯誤:渲染模板期間拋出異常(「Catchable致命錯誤:傳遞給AirblogBu​​ndle \ Twig \ Extension \ BlogExtension :: printCategoriesList()的參數1必須是實例Twig_Environment,沒有給出,在第5305行中定義的「C:\ wamp64 \ www \ airblog \ app \ cache \ dev \ classes.php」中調用)。 –

+0

嗯混亂。我在我的項目上嘗試過它,它立即工作。你能否用這個版本提供你的整個Twig_Extension文件? – Rawburner

+0

按照這個實施:http://www.lrotherfield.com/blog/symfony2-get-twig-environment-twig-extension – Rawburner