Symfony TWIG覆盖嵌入式树枝的块内容

时间:2016-03-03 12:07:07

标签: php symfony twig

我有一些嵌入基部树枝的树枝。嵌入式树枝包含我想在其他树枝中覆盖的块,它们扩展了基础。此更改未显示。我看到了类似的问题,但无法从中推断出答案。

例如在基础树枝中:

<body>
    <div id="wrapper">
        {% embed 'Bundle::sidebar.html.twig' %}{% endembed %}
    </div>
</body>

侧栏树枝包含应该被覆盖的块:

<div>Some content here</div>
{% block example_block %}
    Content of a block
{% endblock %}

扩展基地的Twig:

{% extends 'Bundle::base.html.twig' %}
{% block example_block %}
    I want different content here
{% endblock %}

1 个答案:

答案 0 :(得分:3)

基于嵌入式文档http://twig.sensiolabs.org/doc/tags/embed.html,我认为这应该有用......

基础树枝模板:

{% extends 'Bundle::base.html.twig' %}
{% block sidebar %}
    {% embed "Bundle::sidebar.html.twig" %}
    {# This block is defined in "sidebar.html.twig" #}
    {# and we override it right here: #}
        {% block example_block %}
            I want different content here
        {% endblock %}
    {% endembed %}
{% endblock %}

扩展基础的Twig:

Service Integration > Busses > *busName* > Destinations > *queueName* > Queue points > *queuePointName*

如果在基本模板中声明了侧边栏,则在扩展文件中覆盖它,再次声明嵌入和要覆盖的块。