我正在摆弄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%}?
提前致谢!
答案 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');