الوسم with في Twig
< Twig
استخدم الوسم with
لإنشاء نطاق داخلي جديد، ولا تكون المتغيرات المسندة في هذا النطاق مرئية لمن هو خارجه:
{% with %}
{% set foo = 42 %}
{{ foo }} {# foo is 42 here #}
{% endwith %}
foo is not visible here any longer
تستطيع تمرير جدول من المتغيرات التي تريد تعريفها في وسم with
بدلًا من تعريف المتغيرات في بداية النطاق. فالمثال أدناه مكافئ للمثال السابق:
{% 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 %}
يكون للنطاق الداخلي وصول إلى سياق النطاق الخارجي افتراضيًا، وتستطيع تعطيل هذا السلوك بإلحاق كلمة only
المفتاحية:
{% set bar = 'bar' %}
{% with { foo: 42 } only %}
{# only foo is defined #}
{# bar is not defined #}
{% endwith %}