我正在尝试将键值对添加到数组中,并为所有不以“_”开头的属性添加当前值。出于某种原因,合并将“key”(即 slug)的值替换为字符串“key”。
例如,当 slug 是唯一一个键不以“_”开头的属性时,
key = slug
value = something
它的行为如下:
{% for key,value in app.request.attributes.all %}
{% if '_' != key | slice(0, 1) %}
{{ dump(key) }} // string(4) "slug"
{% set params = params | merge({ key : value}) %}
{{ dump(key) }} // string(4) "slug"
{% endif %}
{% endfor %}
{{ dump(params) }} // array(1) { ["key"]=> string(9) "something" }
我已经添加了转储返回的内容。
最终转储返回
array(1) { ["key"]=> string(9) "something" }
在我期待的时候
array(1) { ["slug"]=> string(9) "something" }
我想说这是一个与Twig forgets array-keys类似的问题,但关于这个问题的结论是这是一个 mongodb 问题,我没有使用它。我正在处理请求中的属性。
由于某种原因,merge({ key : value}) 的行为类似于 merge({ 'key' : value})。