Ich möchte das Rendering eines Formularfelds auf der Bearbeitungsseite des Sonaten-Admin-Bundles anpassen , um ein Applet einzufügen, das den Textinhalt eines Feldes verwendet.
Ich weiß, dass ich die Funktion configureFormFields
in der Admin-Klasse bearbeiten muss, aber ich muss 3 Dinge wissen:
Eine Lösung gefunden
Was ich getan habe ist:
Erstelle einen Feldtyp, lasst ihn in myCompany \ myBundle \ Form \ Type \ myfieldType.php
myfieldType aufrufen %Vor%Registrierte den Typ in app / config / services.yml
%Vor%In meiner myentityAdmin-Klasse
%Vor%und
%Vor%und die Vorlage:
%Vor%Und jetzt kann ich auf den Wert des Formularfelds durch die Zweigvariable "value" zugreifen!
So einfach ... wenn du es hast.
Die Lösung von user1254498 funktioniert nur, wenn das Präfix des Blocknamens mit dem Namen des Formulartyps übereinstimmt. Zumindest mit der letzten Version von Sonata Admin Bundle (2.2.12). In diesem Fall:
%Vor% Und in Bezug auf getFormTheme()
solltest du auch das übergeordnete Thema zurückgeben, sonst kannst du den ganzen Stil brechen ...
Sie können auch auf den Admin-Dienst in der Zweigvorlage mit der Variablen sonata_admin.admim
zugreifen.
In Ihrer Datei services.yml definieren Sie die Vorlage für Ihre Bearbeitungsaktion:
%Vor%In dieser Vorlage können Sie Vorlagen für Felder in Ihrem Formular überschreiben:
%Vor%Dann sieht meine Vorlage so aus:
%Vor%In diesem Fall erscheinen die Kontrollkästchen in meinen Ländern in einer Spalte mit 60 Elementen, nicht in einer Spalte mit der gesamten Liste der Elemente.
Ich hoffe, das ist hilfreich für jemand anderen.
Tags und Links forms symfony-2.1 sonata-admin