你能砍它,并在需要的块设置的值在$_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 body %}
中设置的{% block javascripts %}
中的变量。你可以破解它并将你的js
代码移动到你的body block中。但我更喜欢将我的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 %}
例如,在PHP中,我可以这样做:'$ var = 0; if(true){$ var = 2;} echo $ var; #value == 2 not 0' –
枝条块有自己的范围。所以如果你想让C块打印'banana',你必须重写块B外面的'var'。 – mickdev
另外,看看twig中的'with'关键字:http://twig.sensiolabs.org/doc/ 2.x/tags/with.html – Jan