在我的学说实体,这是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