W moim podmiot doktrynę, która jest data_class
na moim formularzu mam właściwość pliku zdefiniowane tak:Non puste pole wejściowe plik w postaci Symfony2
/**
* Image.
*
* @Assert\NotBlank
* @Assert\File
* @Assert\Image(minWidth="138", minHeight="96")
*/
protected $file;
Również dodaną go tworząc rodzaj z ->add('file', 'file')
...
Tworzenie jednostki działa idealnie, ale problem występuje, gdy używam formularza do aktualizacji tego obiektu. Prosi o ponowne przesłanie pliku, ponieważ ma on znak @Asert/NotBlank. Ponieważ mam inne pola w tej formie, nie chcę ponownie ładować obrazu przy każdej aktualizacji.
Kiedy usuwam @Assert \ NotBlank, everighting działa dobrze, ale chcę, aby to pole pliku było obowiązkowe.
Każdy pomysł?
Dzięki, że dali mi pomysły, zdecydowanie :) Nie rozumiem, dlaczego potrzebujesz innej wartości boolean isUpdate i jak ustawiono te wartości? Sprawdziłem 'if (null! == $ this-> getId())'. Możesz sprawdzić mój temat https://gist.github.com/3066507. Symfony 2.0 było nawet fascynujące, kiedy można przekazać kontekst do walidatora https://gist.github.com/3066488. Dzięki jeszcze raz. – umpirsky
Dobra sprawa. Porównując identyfikator podmiotu z wartością null można zdecydowanie stwierdzić, czy operacja to "dodaj" czy "zaktualizuj". I drugi punkt jest idealnym rozwiązaniem, jak sądzę :) –
Tak, szkoda, że zamknęli ExecutionContext i nie jest możliwe ustawienie ścieżki własności spoza klasy więcej https://github.com/symfony/symfony/blob/ac6939441fb61a17184f536391387aca78b10013 /src/Symfony/Component/Validator/ExecutionContext.php – umpirsky