Symfony2 - Standardwerte im Formsammlung-Prototyp

8

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%
  • Es scheint nur mit einfachen Typen wie Text und Nummer zu funktionieren. Es funktioniert nicht mit dem Datumstyp.
  • Das fühlt sich sowieso nicht richtig an. Ich sollte in der Lage sein, entweder im zugrunde liegenden Modell (zB 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?

    
agentar 21.09.2011, 16:58
quelle

3 Antworten

2

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:

Ссылка

    
kdazzle 13.12.2011, 00:06
quelle
0

kann

sein %Vor%     
copy_of_rezo 04.10.2011 08:25
quelle
0

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.

    
Chris 09.02.2015 14:00
quelle

Tags und Links