2012-03-19 99 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 %}