Объединить ключ и значение в массив в файле 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"
]