2012-03-19 26 views
2

注:我在非Symfony上下文中使用Twig。我如何獲得所有樹枝模板從主繼承?

我想註冊一個總綱,所有的模板應該繼承,所以我不必須忘了給他們前言:

{% extends 'layout.html.twig' %}

我知道我已經看到了這個地方,並Symfony的利用它。

+0

您的代碼不工作嗎?它是有效的 – seferov 2012-03-19 06:36:46

+0

是的,但我希望所有模板擴展'layout.html.twig'而不將它添加到每個模板文件中。 – max 2012-03-19 06:57:49

回答

1

這是可能的!

經過一些嘗試我想出了這個解決方案:

{# index.html.twig #} 
{% block title %}Hello world{% endblock%} 

裹塊中的全球佈局:

{# layout.html.twig #} 
{% block layout %} 
    <html> 
     <head> 
      <title>{% block title %}{% endblock%}</title> 
     </head> 
    <html> 
{% endblock %} 

通行證子模板小枝:

// index.php 
... 
$twig->display(array('template'=>'index.html.twig')); 
... 

進樣的孩子模板通過代理模板:

{# proxy.twig #} 
{% extends 'layout.html.twig' %} 
{% block layout %} 
    {# Get extended block #} 
    {{ parent() }} 
    {# inject template into master layout #} 
    {% include template %} 
{% endblock %}