Ich versuche, den Sammlungsprototyp mit einem Satz von Standardwerten anstelle von leeren Werten zu versehen. Im Idealfall würde ich gerne in der Lage sein, diese Standardwerte entweder in der Modellklasse oder der Formulardefinitionsklasse zu definieren, aber ich finde keine Möglichkeit, dies irgendwo zu tun.
Als ein Beispiel:
Ich habe einen AbstractType für mein Formular erstellt, der eine geschachtelte Sammlung von Personenzeilen enthält (relevanter Code unten):
%Vor%Die PersonType-Klasse enthält den folgenden Code:
%Vor%Das Beste, was ich bisher herausgefunden habe, ist unten in der Ansichtsdatei (der gezeigte Code wird zum Rendern des Sammlungsprototyps verwendet) gezeigt:
%Vor%protected $age = 10;
innerhalb der Model-Klasse) oder in der Form-Definition (AbstractType) Klasse (zB Array ('empty_value' = & gt; new DateTime ( )), aber derzeit sind beide nicht möglich. Zusammenfassend lautet meine Frage:
Wie kann ich Standardwerte für eine Modellklasse definieren, die automatisch auf dem Client festgelegt wird, wenn neue Elemente zu einer Formularsammlung hinzugefügt werden (anstatt nur Leerzeichen zu erhalten).
Weiß jemand einen guten Weg, dies zu tun?
Im Konstruktor der Entität, für die das Formular verwendet wird, legen Sie einfach das Datum mit einem \ DateTime-Objekt fest:
%Vor%Sie können auch \ DateTime ('now') oder \ DateTime ('tomorrow') verwenden, wie in der folgenden Diskussion beschrieben.
Bearbeiten : Diese Information befindet sich tatsächlich in der symfony2-Dokumentation:
Mit Symfony & gt; 2.0 ist das nicht möglich.
Symfony 2.0 hat die Werte für den Prototyp vom zugrunde liegenden Objekt abgerufen. Daher wurden die Werte im Prototyp durch die Festlegung im Konstruktor geändert. Dieses Verhalten wurde jedoch mit Symfony 2.1 geändert, wodurch diese Funktionalität entfernt wurde, was uns davon abhält, Standardwerte für den Prototyp festzulegen:
Ich denke, dass es momentan nicht möglich ist, einen Standardwert für den Prototyp festzulegen. --webmozart, Symfony-Mitarbeiter ( Ссылка )
Es gibt einen offenen Fehler unter aktiver Entwicklung, der Unterstützung für eine Option data_prototype
hinzufügen sollte. Mit dieser Option können Daten zum Vorfüllen des Prototyps bereitgestellt werden. Dies wird jedoch voraussichtlich erst mit Symfony 2.7 veröffentlicht.
Tags und Links symfony