我想做这样的事情:
{{ include("tpl.html")|f }}
但这似乎不起作用,它只是在tpl.html
没有任何过滤的情况下打印,然后我尝试了:
{% filter f %}
{% include "tpl.html" %}
{% endfilter %}
它奏效了。我只是想知道,为什么我不能使用更短的?我误解了什么吗?提前致谢。
我想做这样的事情:
{{ include("tpl.html")|f }}
但这似乎不起作用,它只是在tpl.html
没有任何过滤的情况下打印,然后我尝试了:
{% filter f %}
{% include "tpl.html" %}
{% endfilter %}
它奏效了。我只是想知道,为什么我不能使用更短的?我误解了什么吗?提前致谢。
抱歉这么久才回来:-)
事实是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
标签将编译一些控制输出缓冲区的代码。
要对一段代码应用过滤器,您必须用过滤器标签包装它:
{% filter f %}
...
{% endfilter %}
您最初尝试的是过滤一个变量,该变量在 twig 中由双括号定义:
{{ variable name|filter }}
要阅读更多内容,请在此处查看有关过滤器的 twig 文档