In der Bearbeitungsaktion von Sonata Admin versuche ich also verschiedene Formularfelder anzuzeigen, abhängig vom create oder Kontext .
Vielleicht etwas Hintergrund zuerst ..
Ich habe ein Gallery-Objekt und ein CoverPhoto-Objekt, die an OneToOne gebunden sind.
Galerie:
%Vor%CoverImage:
%Vor%Dies entspricht der GalleryAdmin -Klasse:
%Vor%Und hier gehen wir mit CoverImageAdmin :
%Vor%"Thumbnail" ist mein benutzerdefiniertes Formularfeld, das Miniaturansichten (Schocker) anzeigt. Aber jetzt möchte ich, dass dieses Feld nur im Kontext "Bearbeiten" erscheint.
Dies sollte ein Stück Kuchen sein mit
%Vor%Methode der Admin Klasse und Bedingung. Leider, wenn ich getSubject () in der CoverImagesAdmin-Klasse aufrufen, die zum Rendern verschachtelter Form verwendet wird, gibt es immer null zurück. Das Gleiche gilt für getParent ();
Aufruf von getForm () führt zu
Fataler Fehler: Maximale Funktionsverschachtelungsebene von '500' erreicht, Abbruch! im / home / flammeart / Projekte / KolberPhotography / Verkäufer / symfony / symfony / src / Symfony / Komponente /OptionsResolver/Options.php in Zeile 350
Ich habe versucht, über jede Methode von Admin und FormMapper nur den Formkontext zu bestimmen, aber endete mit nichts.
Weißt du, wie man das auf eine saubere Art und Weise löst?
Ich habe es so geschafft:
%Vor%Imo, diese Sonata-Sache braucht wirklich viel Dokumentation und Refactoring statt Weiterentwicklung.
Tags und Links symfony sonata-admin symfony-sonata