2014-02-15 6 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 «Так что проблема лежит где-то в другом месте ...

. у меня есть класс реестра, в котором я храню экземпляр объекта Twig как одноточечного я его экземпляр, как это:

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 О, мой милый Иисус, я не знал, что вы должны эхо-ауптут явно! Почему они не говорят это в документации? Спасибо брат! – dKab

+0

@KarelG, вероятно, вы должны опубликовать этот комментарий в качестве ответа, чтобы я мог принять его и отметить ответ на этот вопрос. – dKab

ответ

4

я не вижу чего-то, что возвращает сгенерированный шаблон на выходе ... пожалуйста, используйте следующий;

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

это приведет к отображению полученного результата HTML.

Смежные вопросы