我知道上传文件的首选方式是通过Doctrine,如书中所述,但我需要将图像数据保存在xml文件中,我也喜欢约束验证程序。为他们写的代码不多。无论如何,我卡在图像约束,我不知道我做的一切都是正确的。symfony2图像类型约束验证
我validator.yml是folows ...
Frizer\AdminBundle\Entity\UploadedImage:
properties:
image:
- Image:
notFoundMessage: Image not uploaded
uploadErrorMessage: The image could not upload. Try again
uploadIniSizeErrorMessage: Image has to have more that 5M
mimeTypes: [image/jpeg, image/jpg, image/png]
mimeTypesMessage: Image has to be either jpg, jpeg or png format
minWidth: 500
minHeight: 500
minWidthMessage: Image has to be 500/500 px
minHeightMessage: Image has to be 500/500px
maxSize: 5M
maxSizeMessage: Image has to have more than 5M
validate()方法接受具有$图像特性,以及用于与文件类型属性,该属性属性的设置方法的UploadedImage对象。构造函数如下...
$uploadedImage = new UploadedImage();
$validator = $this->get('validator');
$errors = $validator->validate($uploadedImage);
var_dump($errors);
如果我上传的图片大于5M,则$ errors为空。同样的事情,如果我不上传任何东西。我搜索了关于如何在文件上传中使用约束,但没有成功的教程,引发了网络和堆栈溢出问题。任何人都可以解释我做错了什么?
但是,这就是它在书中说。创建一个映射对象,制作validator.yml并将该对象放入validate()方法中。而已。我是否必须在UploadedImage对象中添加其他代码,例如mimeType字段或上传的图像路径?目前,它只有$ image属性和setter方法。另外,我编辑了这个intendation。如果intendation是问题,我认为这将是一个错误。 –