2013-11-26 103 views
0

我在擺弄Twig,我很喜歡它。我確實有一個問題,我想從PHP網站加載2個或更多的模板,並將它們合併爲1個渲染或多個,如果它們給出相同的結果。在Twig中加載多個模板

比方說,我有了做渲染的一類,我有這些模板,模板layout.tmpl在/site/templates/layouts/layout.tmpl:

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

和模板稱爲視圖.tmpl in /site/templates/Home/view.tmpl

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

我需要什麼PHP代碼,什麼是智能。所以我不想在模板文件本身中使用{%extends%}?

在此先感謝!

回答

0

你可以包含該文件。像:

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

我知道,但我真的不想使用這些模板,我想通過PHP將它們綁定在一起。 – Hawiak

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');