Объединить ключ и значение в массив в файле Twig

Я хочу добавить ключ и значение в массив в файле ветки. Но я столкнулся со следующей проблемой "Twig_Error_Syntax: A hash key must be a quoted string or a number"

{% set phoneCount = 0 %}
{% set phoneNumbers = {} %}
{% for currPhone in currBroker.phones %}
    {% if (currPhone.type == 'Work' or currPhone.type == 'Mobile') and phoneCount <= 2 and currPhone.number !='' %}
        {% set phoneCount = phoneCount + 1 %}                   
        {% set phoneNumbers = phoneNumbers|merge({ currPhone.type:currPhone.type }) %}
    {% endif %}
{% endfor %}
{{ phoneNumbers|print_r }}

Мне просто нужен синтаксис объединения ключа и значения в массив. Я попытался дать статические входы и его работы

{% set phoneNumbers = phoneNumbers|merge({ 'work':'(011)112-1233' }) %}

Но это не работает для динамического ввода. Пожалуйста помоги!!

1 ответ

Решение

Вы должны завернуть свой ключ в фигурные скобки:

{% set phoneNumbers = phoneNumbers|merge({ (currPhone.type) : currPhone.type }) %}

Протестированный и рабочий пример:

{% set currPhone = {type: 'test'} %}
{% set phoneNumbers = {} %}
{% set phoneNumbers = phoneNumbers|merge({ (currPhone.type) : currPhone.type }) %}
{% dump(phoneNumbers) %}

Я получил:

array:1 [▼
  "test" => "test"
]
Другие вопросы по тегам