Если вы занимаетесь вещами вне любого блока, эти вещи считаются телом вашего файла ветви. И, как ясно говорится об исключении, если вы расширяете шаблон ветви, вам нужно перезаписать некоторые блоки, содержащиеся в расширенном файле, без какого-либо тела.
Вы должны использовать тег {% extends %}
без каких-либо ограничений, так как расширения уже содержат содержимое. Файл упакован «base.html.twig» является хорошим примером: вы помещаете код, который будет использоваться везде в вашем приложении в файле base.html.twig:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}{% endblock %}
<link rel="shortcut icon" href="{{ asset('favicon.ico') }}" />
</head>
<body>
{% block body %}{% endblock %}
{% block javascripts %}{% endblock %}
</body>
</html>
В вашем случае, вы можете добавить a {% block head %}{% endblock %}
над блоком тела, а затем в вашем файле index.html.twig вы перезапишите этот блок, чтобы выполнить его.
{% extends '::base.html.twig' %}
{% block head %}
<li class="active"><a href="#login">Login</a></li>
{% endblock %}
Это будет в конечном итоге выводимые:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Welcome!</title>
<link rel="shortcut icon" href="/favicon.ico" />
</head>
<body>
<li class="active"><a href="#login">Login</a></li>
</body>
</html>
Заключение
Разница между extends
и include
является то, что вы можете переопределить блоки из расширенного файла, где вы можете» t, включая его, используя include
.
Можете вдавить детали? Как выглядит 'header.html.twig'? Что вы пытаетесь переписать? – SirDerpington