我有这种树枝文件的层次结构
我的主要(对于控制器)树枝
{% extends "MainSiteBundle::layout.html.twig" %}
{% block footer_moderator_buttons %}
some buttons
{% endblock %}
{% block content_body %}
<p>hello moderator</p>
{{ include ('MainBlogBundle:_parts:postList.html.twig', {'postList': aPostDraft}) }}
{% endblock %}
postList.html.twig
<div class="post-list">
{% for postSingle in postList %}
{{ include ('MainBlogBundle:_parts:postSingle.html.twig', {'postSingle': postSingle}) }}
{% endfor %}
</div>
postSingle.html.twig
<div class="post">
<div class="post-header">
<a class="title" href="3">{{ postSingle.title }}</a>
</div>
<div class="post-meta">
<div>Date: {{ postSingle.date|date('D M Y') }}</div>
<div>Category: <a href="#">{{ postSingle.getCategory.getTitle }}</a></div>
<div>Author: <a href="#">{{ postSingle.getUser.username }}</a>
</div>
</div>
<div class="post-body">
<div class="content">
<img width="450" height="200" src="#">
<div class="text">{{ postSingle.content }}</div>
</div>
</div>
<div class="post-footer">
{% block footer_moderator_buttons %}f{% endblock %}
<div>Views: 152</div>
<div>Comments: 1231</div>
<div>
<a class="link" href="#">More... </a>
</div>
</div>
</div>
正如你可以看到的那样(postSingle.html.twig)阻止了“footer_moderator_buttons”, 所以如何从主枝 (第一个)更改它?当前不起作用,我需要改变什么呢?
答案 0 :(得分:1)
在Twig 1.8中,有embed
标记(http://twig.sensiolabs.org/doc/tags/embed.html)。
您必须删除postList.html.twig
文件或解决此问题。
{% embed "MainBlogBundle:_parts:postSingle.html.twig" with {'postSingle': postSingle} %}
{% block footer_moderator_buttons %}
custom buttons here
{% endblock %}
{% endembed %}
答案 1 :(得分:0)
所以,你的问题实际上是“我想要了解什么枝条可以”。那么,这个问题的答案是:“它不能覆盖从”主“到较小的那些的块。”
如果你想使用twig,你必须不再考虑使用php include()方式创建新文件,然后反复“PUT”组件,如页眉,页脚,菜单等组件。 / p>
在树枝中,您可以使用块来定义主树枝文件,这些块可以想象为空格,可以但不必覆盖它们。当然,它仍然意味着你可以在一些扩展MainSiteBundle :: layout.html.twig的文件中包含postList.html.twig。 postSingle.html.twig也是如此。
我认为你抓住了twig的逻辑,除了不要试图从错误的一侧覆盖块 - 在这种情况下,从MainSiteBundle :: layout.html.twig到它的较小部分。
答案 2 :(得分:0)
怎么样:
{% extends "MainSiteBundle::layout.html.twig" %}
....
{% block footer_moderator_buttons %}
{{ parent() }}
{% endblock %}
woops没有放父母.. {{parent()}}将从扩展的树枝继承{%block footer_moderator_buttons%} {%endblock%}。