在多级数组上设置值

时间:2018-02-09 10:59:56

标签: twig

dump(item.url.options.query)

返回: array(size = 0)

{% set item = item|merge({'ref': 'xyz'}) %}

返回:没有错误, item 现已设置

{% set item.url.options.query = item.url.options.query|merge({'ref': 'xyz'}) %}

错误: Twig_Error_Syntax:意外的令牌'标点&#39 ;;价值'。'

如何设置数组索引 item.url.options.query

1 个答案:

答案 0 :(得分:0)

您有一个深度嵌套的数组,因此您需要多次使用merge过滤器:

{% set item = item|merge({
    url: item.urls|merge({
        options: item.url.options|merge({
            query: item.url.options.query|merge({
                ref: 'xyz'
            })
        })
    })
}) %}

如果item变量或某些数组项是对象而不是数组,则可能会出错(因为merge过滤器仅适用于数组和Traversable个对象),或者对象可能会转换为数组。如果是这种情况,您可能需要查看DarkBee链接的问题。