问题描述
有没有办法在 Twig 中指定一个“扩展”来排除其中一个包含的部分?
为了更好地解释我自己,这是我的 base.html.twig
<body>
{% include '/main/_navbar.html.twig' %}
{% block body %}
{% for flashError in app.flashes('success') %}
<div class="alert alert-success" role="alert">{{ message }}</div>
{% endfor %}
{% endblock %}
{% include '/main/_footer.html.twig' %}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="{{ asset('script/app.js') }}"></script>
</body>
在我的登录页面上,我不需要我的 _navbar.html.twig
部分。知道我的视图 extends
来自此 base
模板,有没有办法不包含(排除)它?我可以在 extends
后面传递任何“选项”吗?
这是我用来extend
登录页面上的基本模板的代码:
{% extends 'base.html.twig' %}
解决方法
只需将您不想包含在单独块中的包含包起来,然后用空内容覆盖该块,例如
base.html.twig
<body>
{% block nav %}
{% include '/main/_navbar.html.twig' %}
{% endblock %}
{% block body %}
{% for flashError in app.flashes('success') %}
<div class="alert alert-success" role="alert">{{ message }}</div>
{% endfor %}
{% endblock %}
{% include '/main/_footer.html.twig' %}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="{{ asset('script/app.js') }}"></script>
</body>
login.html.twig
{% extends "base.html.twig" %}
{% block nav %}{% endblock %}