如何在数组中包含twig文件?

时间:2017-02-15 18:58:07

标签: php html html5 symfony twig

您如何将数组传递给twig include?

{% set navbar_logo %}["{{sprinkle|raw}}/components/content/navbar/navbar-logo.html.twig", "/components/content/navbar/navbar-logo.html.twig"]{% endset %}

{% include navbar_logo %}

这导致:

Unable to find template "["@admin/components/content/navbar/navbar-logo.html.twig", "/components/content/navbar/navbar-logo.html.twig"]"

这很好用:

{% include ["{{sprinkle|raw}}/components/content/navbar/navbar-logo.html.twig", "/components/content/navbar/navbar-logo.html.twig"] %}

但我需要从变量中获取它。

这也有效:

 {% set navbar_logo %}{{sprinkle|raw}}/components/content/navbar/navbar-logo.html.twig{% endset %}

{% include navbar_logo %}

但我需要备份,因为第一个不存在。 我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

怎么样:

{% set navbar_logo = include(sprinkle|raw ~ '/components/content/navbar/navbar-logo.html.twig') %}

我并不完全知道您要实现的目标,但更好的方法是将其设置在基本布局的块中。

{% block navbar_logo %}
    {{ include(sprinkle|raw ~ '/components/content/navbar/navbar-logo.html.twig') }}
{% endblock %}

然后,当您稍后需要转储徽标时,请使用{{ block('navbar_logo') }}

有关blocks

的更多信息

答案 1 :(得分:1)

如果你正在使用{% set .. %}... {% endset %},Twig会将变量视为字符串

您应该将代码切换为此代码,然后才能正常工作

{% set navbar_logo = [ sprinkle~"/components/content/navbar/navbar-logo.html.twig", "/components/content/navbar/navbar-logo.html.twig"] %}