如何仅在某些页面上从 Symfony 中的基扩展中排除树枝部分?

How to exclude a twig partial from a base extend in Symfony on some pages only?

有没有一种方法可以在 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 部分。有没有办法不包含(排除)它从这个base模板中知道我的观点extends?我可以在 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 %}

demo