В первой строке, в index.twig
, вы правильно расширили base.twig
. Однако вы не указываете содержимое блока navbar
, поэтому по умолчанию в блоке используется пустое содержимое, установленное в base.twig
.
. Вы можете изменить base.twig
, чтобы включить navbar.twig
, используя include
функция :
...
<div id="content">
{% include "navbar.twig" %}
{% block content %}{% endblock %}
</div>
...
Вы также не должны расширять base.twig
в navbar.twig
для предотвращения бесконечной рекурсии (base
включает navbar
, что расширяет base
, который включает navbar
, ...).
Если вы хотите, чтобы панель навигации была перезаписываемой в index.twig
и других файлах, вы можете сохранить блок navbar
в base.twig
и установить его содержимое по умолчанию включает navbar.twig
:
...
<div id="content">
{% block content %}
{% include "navbar.twig" %}
{% endblock %}
{% block content %}{% endblock %}
</div>
...
Затем, в index.twig
, если вы опустите {% block navbar %}{% endblock %}
, панель навигации будет использовать содержимое из navbar.twig
. Или вы также можете переопределить содержимое блока navbar
:
{% extends "base" %}
{% block navbar %}
<h2>Overridden navbar</h2>
{% endblock %}
{% block content %}
<h2>Main content</h2>
{% endblock %}
Во втором гисте, в index.twig
, вы можете изменить {% block head %}{% endblock %}
на {% include "head.twig" %}
и так далее. В head.twig
и других файлах вы не должны снова расширять index.twig
для предотвращения бесконечных рекурсий.
Я рекомендую взглянуть на документацию Twig о теге extends
, чтобы узнать, как блоки и шаблоны на самом деле работают. В ваших двух списках блоки и шаблоны используются неправильно.