树枝包含的模板一次延长父母的块(Twig included template extending p

2019-08-05 05:26发布

有没有办法做到这一点? 我有一个输出博客文章中的模板。

现在, 索引页上显示我10篇文章被包括在for循环,并显示页面上我只显示一个模板。

指数:

{% block stylesheets %}
    {# some stylesheets here #}
{% endblock %}

{% for article in articles %}
        {% include VendorBundle:article.html.twig with { 'article': article } %}
{% endfor %}

节目:

{% block stylesheets %}
      {# some stylesheets here #}
{% endblock %}

{% include VendorBundle:article.html.twig with { 'article': article } %}

现在是有办法使article.html.twig添加一些{% block stylesheets %}的模板,自动包括它? 如果可能的话,如何使用时,我阻止它补充说,10倍for循环?

我试图让我的“片段”模板(用于包含模板)定义,他们使用,让他们样式表“注入”到这些页面。

Answer 1:

你尝试用 ? 不幸的是,我不能完全肯定,如果我得到这个问题的权利,但{% use %}在此处不再赘述。

据我所知,这个问题你有你的article.html.twig并将其包含在如index.html.twig 。 现在,你想从添加的东西article.html.twigindex.html.twig ? 即到{% stylesheets %}块。

如果我如何使用{% use %}你也许可以尝试一下这样的。

article.html.twig

{% block stylesheets %}
    <link rel="stylesheet" href="{{ asset('bundles/mybundle/css/article.css') }}" type="text/css" />
{% endblock %}
{% block article %}
    {# whatever you do here #}
{% endblock %}

index.html.twig

{% use "VendorBundle:article.html.twig" with stylesheets as article_styles %}
{% block stylesheets %}
    {{ block('article_styles') }}
    {# other styles here #}
{% endblock %}
{% for article in articles %}
        {% include VendorBundle:article.html.twig with { 'article': article } %}
{% endfor %}

我没有测试它的机会,但在实况中指明了一些非常有趣的事情,似乎这样可以做到这一点的方式。

卧式重用是很少需要定期模板先进的嫩枝功能。 它主要用于那些需要做出模板块可重复使用,而无需使用继承的项目。

我是相当新的计算器。 所以,请,如果我的回答是完全没用的,你可以只张贴反对投票前的评论,我删除了吗? 但是,如果它确实有助于并且有在我的例子只是一些错误,也告诉我,我会解决它。



Answer 2:

您可以使用一个新的块(未测试):

{# index.html.twig #}
{% block stylesheets -%}
    {% block article_styles '' %}
{%- endblock %}

{% for ... -%}
    {% include VendorBundle:template.html.twig with {'article': article} %}
{%- endfor %}

{# template.html.twig #}
{% block article_styles -%}
    {{ parent() }}
    <link rel=stylesheet href=...>
{%- endblock %}

{# ... #}

编辑:添加{{ parent() }}这将打印的每个内容块已经拥有。



文章来源: Twig included template extending parent's block once
标签: php symfony twig