我想做这样的事情:
{{ include("tpl.html")|f }}
但这似乎不起作用,它只打印tpl.html
而没有任何过滤,然后我尝试了:
{% filter f %}
{% include "tpl.html" %}
{% endfilter %}
它有效。我只是想知道,为什么我不能使用较短的一个?我误解了什么吗? 提前谢谢。
答案 0 :(得分:4)
要对代码段应用过滤器,必须使用过滤器标记包装它:
{% filter f %}
...
{% endfilter %}
您最初尝试的是过滤一个由双括号定义的变量:
{{ variable name|filter }}
阅读更多信息,请查看过滤器here
上的twig文档答案 1 :(得分:3)
很抱歉回来很久: - )
事实是include
函数在模板上写入。
如果你这样做:
{% set s = include('FuzHomeBundle:Default:test.html.twig') %}
不应该显示某些内容,无论如何都会获得文件输出的内容,s
变量将设置为null
。
如果你改为:
{% filter upper %}
{% include 'FuzHomeBundle:Default:test.html.twig' %}
{% endfilter %}
或
{% filter upper %}
{{ include('FuzHomeBundle:Default:test.html.twig' }}
{% endfilter %}
filter
标记将编译一些控制输出缓冲区的代码。