我正在尝试将{% block body %}
放入{% include 'bundle::...' %}
。这是我的代码:
{% extends '::base.html.twig' %}
{% block title %}{{ id }}{% endblock %}
{% block content %}
{% include 'scraperBundle::Event/sideLeft.html.twig' %}
{% include 'scraperBundle::Event/sideRight.html.twig' %}
{% endblock %}
{% block body %}
stuff here to go ingo block body
{% endblock %}
问题是所有内容都正确加载,但我的{% block body %}
没有进入应该放置的位置,这位于{% include 'scraperBundle::Event/sideLeft.html.twig' %}
文件中:
<div class="event-info">
{% block body %}{% endblock %}
</div>
我不熟悉Twig,有人知道正确的方法或如何做到这一点?
感谢。
==============编辑==============
我可以嵌套{% block nameof %}
吗?
{% extends '::base.html.twig' %}
{% block title %}{{ id }}{% endblock %}
{% block content %}
{% embed 'scraperBundle::Event/sideLeft.html.twig' %}
{% block body %}
{% endblock %}
{% endembed %}
{% embed 'scraperBundle::Event/sideRight.html.twig' %}
{% endblock %}
==============编辑2(工作)==============
添加了第二个{% endembed %}
,现在可行了。我猜你确实可以嵌套{% block %}
个东西。
我可以嵌套{% block nameof %}
吗?
{% extends '::base.html.twig' %}
{% block title %}{{ id }}{% endblock %}
{% block content %}
{% embed 'scraperBundle::Event/sideLeft.html.twig' %}
{% block body %}
{% endblock %}
{% endembed %}
{% embed 'scraperBundle::Event/sideRight.html.twig' %}
{% endembed %}
{% endblock %}
答案 0 :(得分:1)
您无法覆盖include
d模板中的阻止。您正在寻找的是embed
:
# template1.html.twig
{% embed "template2.html.twig" %}
{% block override_me %}
This will override "HAI" text
{% endblock %}
{% endembed %}
# template2.html.twig
Something here
{% block override_me %}HAI{% endblock %}
答案 1 :(得分:1)
您无法从包含的模板中指定或覆盖块。有关为什么不起作用的背景信息,请参阅this answer的类似问题。
不过,{% embed %}会做你需要的。
对于第二个问题:可以嵌套块。在实践中,嵌套块很常见。