2014-02-15 165 views
0

所以在我控制我寫:爲什麼Twig呈現空白頁?

... 
public function execute() 
{ 
    $dbh = AppHelper::instance()->getConnection(); 
    $manager = new PostManager($dbh); 
    $posts = $manager->getAllPosts(); 
    $twig = AppHelper::twig(); 
    // var_dump($twig); 
    //var_dump($posts); 
    $twig->render("posts.html.twig", array( 
     'title'=>'Все записи', 
     //'posts'=>$posts, 
     'debug' => true 
     )); 
} 
... 

而且我有一個基本的佈局樹枝模板:

<!DOCTYPE html> 
<html> 
<head> 
    <title> 
{% block title %} 
{% endblock %} - Алёнин блог 
    </title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width"> 
</head> 
<body> 
    <div> 
     {% block content %} 
     Приветствую вас в моём крутейшем блоге!! 
     {% endblock %} 
    </div> 
</body> 
</html> 

我的帖子模板:

{% extends "main.html.twig" %} 
{% block title %} {{ title }} {% endblock %} 
{% block content %} 
{% if posts is not empty %} 
    <ul> 
{% for post in posts %} 
     <li> 
      <h2>{{ post.title }}</h2><br /> 
      <div class="post_status">Статус: {{ post.name }}</div> 
        Опубликовано: 
         {{ post.create_time }} <br /> 
      {{ post.body }} 
     </li> 
     <br /><hr /> 
{% endfor %} 
    </ul> 
{% else %} 
    <p> 
     Публикаций пока нет. 
    </p> 
{% endif %} 
{% endblock content %} 

所以,你可以看到這是相當基本的代碼沒有什麼複雜的,但我仍然無法得到它的工作...當我var_dump($ twig)我可以看到,這是Twig_Environment類的有效實例,所以問題不是他回覆。此外,我相信Twig正在看到我的模板 - 因爲如果我寫一些亂碼而不是現有的文件名,我會收到錯誤「無法找到模板」posts.html.twigdfs「所以問題出在其他地方...

。我有一個登記類,我保持枝條對象的實例作爲一個單身我實例化它是這樣的:

class AppHelper { 
... 
private static $twig; 
... 

public static function twig() 
{ 
    $templateDir = "protected/views"; 
    $layoutDir = $templateDir . "/layouts"; 
    if (! isset(self::$twig)) { 
    $loader = new Twig_Loader_Filesystem(array($templateDir, $layoutDir)); 
    self::$twig = new Twig_Environment($loader); 
    } 
    return self::$twig; 
} 
} 

任何想法,爲什麼我得到一個空的輸出沒有任何錯誤

+2

我沒有看到將生成的模板返回到輸出的東西...使用'echo $ twig-> render(...)'? – KarelG

+0

@KarelG哦,我親愛的耶穌,我不知道你應該明確地迴應ouptut!他們爲什麼不在文檔中說呢?多謝兄弟! – dKab

+0

@KarelG你應該發表評論作爲答案,所以我可以接受它並標記回答的問題。 – dKab

回答

4

我沒有看到將生成的模板返回到輸出的內容...請使用下一個;

echo $twig->render(...); 

這會將呈現的HTML結果帶到輸出中。