枝条:

{% set var = 'apple' %}

{% block A %}
    {{ var }} {# This prints apple #}
{% endblock %}

{% block B %}
    {% set var = 'banana' %}
    {{ var }} {# This prints banana #}
{% endblock %}

{% block C %}
    {{ var }} {# This prints apple, but I want it to print banana #}
{% endblock %}

有什么方法可以从块C中的块B获取更改后的值吗?

最佳答案

您可以修改它并在$_SESSION变量中设置值,然后在所需的块中访问它:

{% set var = 'apple' %}

{% block A %}
    {{ var }} {# This prints apple #}
{% endblock %}

{% block B %}
    {% set var = 'banana' %}
    {{ var }} {# This prints banana #}
    {{ app.session.set('var', var) }}
{% endblock %}

{% block C  %}
    {{ var }} {# This prints apple #}
    {% set var = app.session.get('var') %}
    {{ var }} {# This prints banana #}
{% endblock %}

这是给您展示的twigfiddle

或者在注释部分中,您提到要访问{% block javascripts %}中设置的{% block body %}中的变量。您可以对其进行修改,然后将其js代码移动到您的正文块中。但是我更喜欢将js代码保存在一个地方。
{% set var = 'apple' %}

{% block A %}
    {{ var }} {# This prints apple #}
{% endblock %}

{% set var = 'banana' %}
{% block B %}
    {{ var }} {# This prints banana #}
`<script>{{ var }}</script>` {# Bring your js code in the required block#}
{% endblock %}

关于symfony - 在 Twig 中的块之间传递变量数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42855003/

10-12 15:36