php - 将键和值合并到 Twig 文件中的数组中

标签 php symfony twig-extension

我想将键和值添加到 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' }) %}

但它不适用于动态输入。请帮忙!!

最佳答案

你必须用大括号把你的 key 包起来:

{% 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"
]

关于php - 将键和值合并到 Twig 文件中的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137739/

相关文章:

php - Symfony 中的 Postgres 部分唯一索引

php - 类 Doctrine\ORM\PersistentCollection 的对象无法转换为字符串

symfony - 如何覆盖每个环境的 Symfony2 语义配置?

symfony - 如何在 symfony 模板中拥有来自 db 的全局变量?

php - PHP没有返回错误时调试MySQL插入失败

php - 标题仅在第一行

php - Yii2 获取绝对主页 url

php - Symfony Twig Extension 破坏了其他服务 - 模板是否在安全之前完成?

symfony - Symfony2 中的多个 Twig_Extension

javascript - 在服务器发送事件的情况下面对 Javascript 冒泡