Setting the default value of a Symfony FormType nested in CollectionType
PHPDieser Beitrag ist etwas älter. Meinungen, Daten und Codes könnten veraltet sein.
Helfen Sie mit, allfällige Fehler zu korrigieren: GitHub
Es gibt einige Möglichkeiten, einen Standardwert zu hacken, um Felder zu bilden.
Das Problem wird größer, wenn CollectionType
behandelt wird, da die zugrunde liegenden Objekte nicht automatisch erstellt werden.
Es gibt zahlreiche Problemumgehungen, z.
Setzen Sie einfach prototype_data
für denCollectionType
auf ein instanziiertes Objekt.
Leider hat für mich bei der Arbeit mit nested CollectionTypes keines davon funktioniert.
Die einzige Möglichkeit für mich war das Hinzufügen eines DataTransformers
, der in der Funktion reverseTransform
prüft, ob das zu transformierende Objekt is_null
, und setzen Sie es stattdessen auf eine neue Instanz.
Die Standardwerte werden dann im Konstruktor des zugrunde liegenden Objekts oder auch in der reverseTransform-Funktion festgelegt, je nach Ihren (Leistungs-) Anforderungen.
Ich hoffe, dass dies eines Tages verbessert wird, aber im Moment ist diese Problemumgehung sehr verständlich, sodass ich nicht daran denken würde, ein Problem oder eine Pull-Anfrage einzureichen oder sogar zu fragen, warum dies notwendig ist. Auf diese Weise habe ich noch mehr Kontrolle über die neuen Objekte.