'_'で始まらないすべての属性の現在の値を使用して、キー値のペアを配列に追加しようとしています。何らかの理由で、マージは「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が配列キーを忘れるのと同様の問題だと思いますが、その質問の結論は、mongodbの問題であり、私はそれを使用していません。リクエストの属性を使用しています。
何らかの理由で、merge({key:value})はmerge({'key':value})として動作しています。