渲染布局和页面树枝文件

时间:2017-07-08 16:19:57

标签: php twig templating-engine

的index.php

    ob_start();
    require_once 'page.twig';
    $page = ob_get_contents();
    ob_clean();

    ob_start();
    require_once 'base.twig';
    $base = ob_get_contents();
    ob_clean();

    $loader = new \Twig_Loader_Array(array(
        'page'  => $page,
        'base' => $base,
    ));
    $twig = new \Twig_Environment($loader);


    echo $twig->render('base', $mydataarr);
    echo $twig->render('page', $mydataarr);

base.twig

These words on the content area<br>
{% block content %}{% endblock %}<br>
These words under the content area<br>

page.twig

{% extends 'base.twig' %}
{% block content %}
These words inside the content area
{% endblock %}

问题:

extends关键字的问题。我可以单独打印页面或基本内容。但我无法使用extends或include或embed打印它们。

我使用定制的php系统。我将代码包装到try块中,我的例外是;

private&#39; rawMessage&#39; (Twig_Error)=&gt; string&#39; Template&#34; base.twig&#34;没有定义。&#39; (长度= 32)

1 个答案:

答案 0 :(得分:0)

这里有点晚了,但您应该将其命名为“base.twig”,因为这是 page.twig 中的扩展模板。

$loader = new \Twig_Loader_Array(array(
    'page'  => $page,
    'base.twig' => $base,
));