{%include''之间的差异在Twig中%}和{{include('')}}

时间:2014-06-12 09:55:31

标签: symfony include twig

可以通过两种不同的方式包含文件:

{% include 'fic.html.twig' %} 
{{ include('fic.html.twig') }} 

这两种方法有什么区别?

来源:

4 个答案:

答案 0 :(得分:13)

标签不如功能灵活,例如:

1)如果要重复两次,请将文件内容存储在变量中:

{% set content = include('test.twig') %}

而不是:

{% set content %}
{% include 'test.twig' %}
{% endset %}

2)如果你想添加过滤器:

{{ include('alert.twig') | upper }}

它的标签等价物:

{% set temp %}
{% include 'alert.twig' %}
{% endset %}
{{ temp | upper }}

你知道,{{ include }}而不是{% include %}不会改变这个世界,但是当你需要使用Twig做一些棘手的事情时,会消除一些复杂性。

此外,根据documentation,它似乎建议使用{{ include() }}来配合最佳做法:

{{ }} is used to print the result of an expression evaluation;
{% %} is used to execute statements.

答案 1 :(得分:3)

来自Twig的changelog

* 1.12.0-RC1 (2012-12-29)

 * added an include function (does the same as the include tag but in a more flexible way)

答案 2 :(得分:1)

我认为它具有相同的功能,但{% include '' %}是标记,{{ include('') }}是一个功能。也许如果你想覆盖这个功能,它可能比标签更容易。

答案 3 :(得分:0)

来自Symfony 2.8(LTS)documentation

  

2.3 自Symfony 2.3以来,include()函数可用。之前,使用了{%include%}标记。