枝条:
{% 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/