捕获并附加在Twig中

时间:2014-03-28 14:43:59

标签: templates symfony twig

我需要的是在任何模板中将文本块附加到相同的名称,最后打印它的值。

到目前为止我所拥有的。

在儿童模板中:

{% set tmp %}
...some text...
{% endset %}

{% set capture = capture|default([])|merge([tmp]) %}

在父级(主要布局)中:

{{ capture|default([])|join|raw }}
{# it works in the same template but not in parent #}

我知道这很丑陋,但如果有效的话仍会很高兴。

理想情况下,我想扩展一下这样的工作:

{% capture %}
...some text...
{% endcapture %}
{# to capture #}

{% capture() %}
{# to print #}

但我见过的文档(http://twig.sensiolabs.org/doc/advanced.html)没有帮助。

我不知道应该选择哪种类型的扩展,进行实际的数据操作,如何访问和附加数据。

我可以使用哪种现有扩展作为基础?

1 个答案:

答案 0 :(得分:0)

无法访问sf config中设置的Twig全局变量。

因此创建了2个Twig函数:一个用于追加内容,另一个用于获取缓冲的内容。

将twig扩展类属性用作“global var”,因为容器参数已被锁定。

用法:

  1. 将内容设置为local var
  2. 将local var附加到global var
  3. 获取并打印原始全局变量内容