In meiner Lehre Einheit, die data_class
für meine Form ist habe ich eine Datei Eigenschaft wie folgt definiert:Nicht leere Datei Eingabefeld in Symfony2 Form
/**
* Image.
*
* @Assert\NotBlank
* @Assert\File
* @Assert\Image(minWidth="138", minHeight="96")
*/
protected $file;
Auch hinzugefügt mit ->add('file', 'file')
Typ zu bilden ...
Erstellen Entität funktioniert perfekt, aber das Problem ist, wenn ich Formular zum Aktualisieren dieser Entität verwenden. Es fragt erneut nach der Datei, da es @ Assert \ NotBlank hat. Da ich andere Felder in diesem Formular habe, möchte ich das Bild nicht bei jedem Update neu laden.
Wenn ich @Assert \ NotBlank entferne, funktioniert alles einwandfrei, aber ich möchte dieses Dateifeld obligatorisch sein.
Irgendeine Idee?
Danke, das gab mir Ideen, definatelly :) Ich verstehe nicht, warum Sie einen anderen booleschen isUpdate brauchen, und wie werden diese Werte gesetzt? Ich habe 'if (null! == $ this-> getId())' überprüft. Sie können meine wichtigsten https://gist.github.com/3066507 überprüfen. Es war sogar schicker in Symfony 2.0, wenn Sie im Zusammenhang mit Validator https://gist.github.com/3066488 übergeben können. Danke noch einmal. – umpirsky
Oh, guter Punkt. Durch den Vergleich der Entity-ID mit NULL können Sie definitiv sagen, ob die Operation "add" oder "update" ist. Und der zweite Punkt ist die perfekte Lösung, denke ich :) –
Ja, schade, dass sie ExecutionContext geschlossen haben und es nicht mehr möglich ist, den Eigenschaftspfad von außerhalb der Klasse zu setzen https://github.com/symfony/symfony/blob/ac6939441fb61a17184f536391387aca78b10013 /src/Symfony/Component/Validator/ExecutionContext.php – umpirsky