如何从树枝延伸覆盖模板块?

时间:2014-01-25 23:30:43

标签: symfony twig

是否可以从树枝延伸覆盖模板块?我该怎么做?

修改:

我的主布局模板中有一个块,它被称为 {%block emailMenu%} ,问题是,是否可以覆盖此块,而不是来自另一个模板,而是来自内部枝条定制功能?

我想我很困惑是处理我的情况的最好方法,我的电子邮件菜单会根据几个因素在页面之间发生变化,我想要从布局或其他模板中调用一个twig函数,我之所以这样思考,是为了让我的其他模板不受大量逻辑的影响,我宁愿使用纯PHP。任何想法将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以渲染渲染自己的模板(可能取决于页面)的其他控制器(不是枝条扩展),这会覆盖基本模板块。

我认为,覆盖树枝延伸的阻挡 - 它不是用于树枝的。

答案 1 :(得分:-2)

您必须创建基本模板:

{# src/BW/MainBundle/Resources/views/Main/base.html.twig #}
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>{% block title %}Test Application{% endblock %}</title>
    </head>
    <body>
        <div id="sidebar">
            {% block sidebar %}
                <ul>
                      <li><a href="/">Home</a></li>
                      <li><a href="/blog">Blog</a></li>
                </ul>
            {% endblock %}
        </div>

        <div id="content">
            {% block body %}{% endblock %}
        </div>
    </body>
</html>

然后使用extends关键字扩展父模板:

{# src/Acme/BlogBundle/Resources/views/Blog/index.html.twig #}
{% extends 'BWMainBundle:Main:base.html.twig' %}

{% block title %}My cool blog posts{% endblock %}

{% block body %}
    {% for entry in blog_entries %}
        <h2>{{ entry.title }}</h2>
        <p>{{ entry.body }}</p>
    {% endfor %}
{% endblock %}

另请阅读使用SymfonyTwig中模板化的this个文档。