Php 包含细枝过滤器的模板

Php 包含细枝过滤器的模板,php,twig,template-engine,Php,Twig,Template Engine,我想做这样的事情: {{ include("tpl.html")|f }} 但这似乎不起作用,它只是在没有任何过滤的情况下打印tpl.html,然后我尝试: {% filter f %} {% include "tpl.html" %} {% endfilter %} 它成功了。我只是想知道,为什么我不能用短一点的?我误解了什么吗? 提前谢谢。很抱歉这么久才回来:-) 事实上,include函数写入模板 如果您这样做: {% set s = include('FuzHomeBundl

我想做这样的事情:

{{ 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
标记将编译一些控制输出缓冲区的代码。

要在代码段上应用过滤器,必须用filter标记将其包装:

{% filter f %}
    ...
{% endfilter %}
您最初尝试的是过滤twig中由双括号定义的变量:

{{ variable name|filter }}

要阅读更多信息,请查看有关过滤器的细枝文档

No,我想对整个输出应用降价过滤器No。或者这听起来很愚蠢?无论如何,我想说,这不是转义,而是任何过滤器。
{{}
接受一个表达式,不一定是一个变量。在OP的例子中,过滤函数调用就是表达式,这里没有错误。你找到了一个更简单的方法吗?还是使用
{%filter%}
仍然是最好的方法?
{{ variable name|filter }}