with

Use the with tag to create a new inner scope. Variables set within this scope are not visible outside of the scope:

with タグを使用して、新しい内部スコープを作成します。このスコープ内で設定された変数は、スコープ外では見えません。
1
2
3
4
5
{% with %}
    {% set foo = 42 %}
    {{ foo }} {# foo is 42 here #}
{% endwith %}
foo is not visible here any longer

Instead of defining variables at the beginning of the scope, you can pass a hash of variables you want to define in the with tag; the previous example is equivalent to the following one:

スコープの先頭で変数を定義する代わりに、with タグで定義したい変数のハッシュを渡すことができます。前の例は、次の例と同等です。
1
2
3
4
5
6
7
8
9
10
{% with { foo: 42 } %}
    {{ foo }} {# foo is 42 here #}
{% endwith %}
foo is not visible here any longer

{# it works with any expression that resolves to a hash #}
{% set vars = { foo: 42 } %}
{% with vars %}
    ...
{% endwith %}

By default, the inner scope has access to the outer scope context; you can disable this behavior by appending the only keyword:

デフォルトでは、内側のスコープは外側のスコープ コンテキストにアクセスできます。 only キーワードを追加することで、この動作を無効にすることができます。
1
2
3
4
5
{% set bar = 'bar' %}
{% with { foo: 42 } only %}
    {# only foo is defined #}
    {# bar is not defined #}
{% endwith %}