Die ersten drei Ihrer Beispiele sind nicht gültig Twig-Syntax, wie die Fehlermeldungen sagen. Das vierte Beispiel, das den Twig-Merge-Filter verwendet, würde funktionieren, wenn Ihr Objekt ein Array, ein Hash (d. H. {% set object = { other: 'something' } %}
) oder eine Instanz einer Traversable-Klasse wäre. Ihr Objekt ist keines davon, wie aus der Fehlermeldung von Twig ersichtlich ist: 'Der Merge-Filter funktioniert nur mit Arrays oder "Traversable", bekam "Objekt" als erstes Argument. Beachten Sie auch, dass Sie einen Tippfehler haben (wie bereits von aferber erwähnt): Sie haben {'other', null}
, während Sie {'other': null}
(oder {other: null}
) haben sollten.
Also, was Sie versuchen, kann nicht in Twig Out-of-the-Box getan werden. Sie müssen entweder Ihre Klasse ändern (z. B. eine Methode erstellen, die die other
-Eigenschaft auf null setzt) oder eine Zweig-Erweiterung erstellen. Die Frage Adding a property to an object in twig enthält Antworten, die zeigen, wie Sie diese Lösungen angehen könnten.
Eine dritte Möglichkeit wäre, Ihre Klasse zu modifizieren, so dass das Objekt Traversable ist. Dann könnten Sie den Zusammenführungsfilter verwenden.
Natürlich besteht eine weitere Möglichkeit darin, zu versuchen, dies in Twig zu tun und dies z. in einem Controller (wie bereits von Frank B vorgeschlagen).
können Sie einen Kuchen in einem Gefrierschrank backen? Nein, warum? Weil Gefrierschränke nicht dafür ausgelegt sind, einen Kuchen zu backen! Zweig wird gemacht, um eine Ansicht zu machen. keine Objekte zu bauen. Das sollten Sie in der Steuerung oder einem anderen Dienst tun. –
Wird das Objekt vor einer anderen Zuweisung initialisiert? – Matteo
Können Sie Ihren vollständigen Code zeigen, und insbesondere was ist "Objekt"? Sie können auch 'dump (object)', um anzuzeigen, wie es aussieht. –