在Twig中加载多个模板

时间:2013-11-26 05:08:10

标签: php twig

我正在摆弄Twig,到目前为止我喜欢它。我确实有一个问题,我想从PHP站点加载2个或更多模板,并将它们“合并”在1个渲染或多个中,如果它给出相同的结果。

假设我有一个必须进行渲染的类,我有这些模板,在/site/templates/layouts/layout.tmpl中的模板layout.tmpl:

{% block head %}
<head>
blabla
</head>
{% endblock %}

/site/templates/Home/view.tmpl中名为view.tmpl的模板

{% block head %}
<head>
blabla2
</head>
{% endblock %}

我需要什么PHP代码以及什么是智能代码。所以我不想在模板文件中使用{%extends%}?

提前致谢!

2 个答案:

答案 0 :(得分:1)

您可以包含该文件。像:

    {% include 'header.html' %}
    Body
    {% include 'footer.html' %}

答案 1 :(得分:0)

我找到了一个远非漂亮的解决方法,但它完成了工作。

$template_contents = file_get_contents();
$layout_contents = file_get_contents();
$template_contents = "{% extends \"layout.tmpl\" %}" . $template_contents; 

$loader = Twig_Loader_Array(array('layout.tmpl' => $layout_contents, 'template.tmpl' => $template_contents);
$twig = new Twig_Environment($loader);
$twig->render('template.tmpl');