Symfony3:将函数应用于每个Twig渲染的输出

时间:2017-05-29 22:32:04

标签: symfony symfony-3.2

在我的Twig模板中,我经常在顶部进行分配,例如: {{ set something = value() }}

因此,在我打开<html>标记之前通常会有一些空白行。为了解决这个问题,我想在每个Twig渲染的输出上运行trim(),不管怎样 $this->renderView()$this->render()

我能做到这一点&#34;手动&#34;但我想知道是否有办法让Symfony自动完成,可能会扩展Twig或添加事件监听器。有可能这样做吗?我正在使用Symfony 3.2。

感谢。

3 个答案:

答案 0 :(得分:0)

除了为每个标记使用空格(在 {{ - xyz}}之前添加或添加' - ') {{ - xyz - }})< / em>修剪适用于

的两面
  • {{...}}
  • {%...%}
  • {#...#}

并通过 {%spaceless%}完全删除空白... {%spaceless%} 我怀疑是否有任何简单的方法来删除特定于您希望的空白区域。< / p>

进一步阅读:https://twig.sensiolabs.org/doc/2.x/templates.html#whitespace-control

答案 1 :(得分:0)

您可以使用spaceless标记包裹基本树枝模板,以避免在html标记之前间隔开。

答案 2 :(得分:0)

我想知道这是否有效。在您的基本模板`base.html.twig&#39;将其添加到顶部(标记之前):

{%- block variables -%}{%- endblock -%}

然后在你的扩展文件中调用:

{% extends 'base.html.twig' %}
{%- block variables -%}
   {{ set something = value() }}
{%- endblock -%}

或类似的东西。它可能有用吗?