1
{% block someBlock %}
{% set foo = 'blah blah blah' %}
{% endblock %}

{% block otherBlock %}
{{ foo }}
{% endblock %}

これは期待どおりに動作しません (foo は 2 番目のブロックに表示されません)。グローバルに表示して期待どおりに動作させるにはどうすればよいですか?

4

2 に答える 2

1

TWIG または Symfony2 の問題のようです:

https://github.com/fabpot/Twig/issues/735

もしかしたら近い将来…

于 2013-07-15T07:19:14.630 に答える
0

foo外部スコープで初期化する必要があります。

{# begin template "foo.html" #}

{% set foo = 'default value' %}  {# defined bar.foo #}

{% block someBlock %}
{% set foo = 'blah blah blah' %} {# changes bar.foo #}
{{ foo }}                        {# outputs bar.foo #}
{% set baz = 'other' %}          {# defined #}
{% endblock %}

{% block otherBlock %}
{{ foo }}                        {# outputs bar.foo #}
{{ baz }}                        {# undefined #}
{% endblock %}

{# template "main.html" #}

{% include "foo.html" as bar %}

{{ block('someBlock') }}
{{ block('otherBlock')}}
于 2016-06-28T22:07:00.447 に答える