在我的學說實體,這是data_class
我的形式我有這樣定義的文件屬性:非空白的文件輸入字段
/**
* Image.
*
* @Assert\NotBlank
* @Assert\File
* @Assert\Image(minWidth="138", minHeight="96")
*/
protected $file;
而且還表示,它與->add('file', 'file')
形成類型...
創建實體完美,但問題是當我使用窗體來更新這個實體。它再次請求文件,因爲它有@Assert \ NotBlank。由於我有這種形式的其他領域,我不想在每次更新上重新上傳圖像。
當我刪除@Assert \ NotBlank時,一貫的工作正常,但我希望這個文件字段是強制性的。
有什麼想法?
謝謝,這給了我的想法,definatelly :)我不明白你爲什麼需要另一個isUpdate布爾值,以及如何設置值?我檢查了'if(null!== $ this-> getId())'。你可以查看我的要點https://gist.github.com/3066507。在Symfony 2.0中,你甚至可以將它傳遞給驗證器https://gist.github.com/3066488。再次感謝。 – umpirsky 2012-07-07 13:42:23
哦,好點。通過比較實體id和null,你可以肯定地說出操作是「添加」還是「更新」。第二個要點是我想的完美解決方案:) – 2012-07-07 13:53:05
是的,他們關閉了ExecutionContext太糟糕了,並且不能從類之外設置屬性路徑https://github.com/symfony/symfony/blob/ac6939441fb61a17184f536391387aca78b10013 /src/Symfony/Component/Validator/ExecutionContext.php – umpirsky 2012-07-07 14:11:44