Schlüssel-Wert ersetzt wird durch 'Schlüssel' bei der Verwendung von merge() in twig
Ich bin versuchen, um Paare von Schlüssel-Wert an ein array mit den aktuellen Werten für alle Attribute fangen nicht mit '_'. Für einige Grund dafür, die Seriendruck-ersetzt den Wert von "key" (ich.e slug) mit dem string 'Schlüssel'.
Zum Beispiel, wenn slug " ist das einzige Attribut mit key fängt nicht mit '_',
key = slug
value = something
verhält es sich wie folgt:
{% 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" }
Habe ich Hinzugefügt, was den Halden zurück neben Ihnen.
Den letzten dump gibt
array(1) { ["key"]=> string(9) "something" }
während ich erwarte
array(1) { ["slug"]=> string(9) "something" }
Ich würde sagen, es ist ein ähnliches problem, Zweig vergisst array-Schlüssel aber die Schlussfolgerung auf diese Frage ist, dass eine mongodb problem, und ich bin es nicht verwenden. Ich arbeite mit den Attributen aus der Anfrage.
Für einige Grund, der merge({ key : value}) ist das Verhalten von merge({ 'key' : Wert,}).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie wickeln Sie Ihre Variablen mit Klammern zu können, verwenden Sie es als Schlüssel.
merge
filter verwendet PHPsarray_merge
Methode, die neunummerieren von numerischen Werten. Dieser Beitrag beschreibt eine mögliche Arbeit um (die Unterstriche aus der Reihe Werte): obtao.com/blog/2014/06/use-variable-key-twig-array