在twig symfony中动态加载带有{%use%}语句的模板?

时间:2014-11-23 03:18:39

标签: symfony twig

我在symfony做一个项目,我想用use语句加载一个模板。

这就是我喜欢做的事情:

{% for p in db.page. %}
    {% use 'PageBundle:Pages:' ~ p.template ~ '.html.twig' %}
{% endfor %}

但不要允许它。返回以下错误消息:

  

“use”语句中的模板引用必须是字符串

有人可以帮忙吗?
谢谢!

2 个答案:

答案 0 :(得分:2)

这应该使用include

{% for p in db.page %}
    {% include 'PageBundle:Pages:' ~ p.template ~ '.html.twig' %}
{% endfor %}

答案 1 :(得分:1)

无法使用动态变量或OP等表达式调用Twig的 use 函数。

  

Twig Documentation says:因为use语句是独立于上下文解析的   传递给模板,模板引用不能是一个   表达

有关详细信息,请参阅此链接:Twig Issue