4

我想做这样的事情:

{% if compress %}{% spaceless %}{% endif %}
...
{% if compress %}{% endspaceless %}{% endif %}

我正在尝试['compress' => true]从 PHP 传递给模板以打开spaceless模式。但这会导致错误;模板标签需要正确嵌套。

有没有什么技术可以让我从 PHP 中打开/关闭空间?

4

2 回答 2

2

您将不得不重组您的模板以执行类似的操作。

{% import _self as example %}
{% macro stuff(obj) %}
  output stuff with {{ obj.name }}, etc...
{% endmacro %}

{% if compress %}
  {% spaceless %}
    {{ example.stuff(bla) }}
  {% endspaceless %}
{% else %}
    {{ example.stuff(bla) }}
{% endif %}

使用可以避免您必须复制内容。顶部的 import 语句很重要,所以不要忘记它。

于 2012-11-27T13:38:08.300 回答
-2

page.twig:

{% block page %}
page content
{% endblock %}

index.twig:

{% extends 'page.twig' %}
{% block page %}
    {% if compress %}
        {% spaceless %}
           {{ parent() }}
        {% endspaceless %} 
    {% else %}
        {{ parent() }}
    {% endif %}
{% endblock %}
于 2014-08-23T16:44:04.213 回答