你能砍它,並在需要的塊設置的值在$_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