Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php symfony2图像类型约束验证_Php_Validation_Symfony - Fatal编程技术网

Php symfony2图像类型约束验证

Php symfony2图像类型约束验证,php,validation,symfony,Php,Validation,Symfony,我知道上传文件的首选方式是通过书中解释的条令,但我需要将图像数据保存在xml文件中,我也喜欢约束验证器。不需要为它们编写太多代码。不管怎样,我被图像约束所束缚,我不知道我做的每件事都是正确的 我的validator.yml如下所示 Frizer\AdminBundle\Entity\UploadedImage: properties: image: - Image: notFoundMessage: Image n

我知道上传文件的首选方式是通过书中解释的条令,但我需要将图像数据保存在xml文件中,我也喜欢约束验证器。不需要为它们编写太多代码。不管怎样,我被图像约束所束缚,我不知道我做的每件事都是正确的

我的validator.yml如下所示

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()方法接受UploadeImage对象,该对象具有$image属性,该属性的setter方法具有File type属性。构造函数如下所示

    $uploadedImage = new UploadedImage();

    $validator = $this->get('validator');
    $errors = $validator->validate($uploadedImage);

    var_dump($errors);

如果我上传的图像大于500万美元,则错误为空。如果我不上传任何东西也一样。我在网上搜索了一篇关于如何在文件上传中使用约束的教程,但没有成功。有人能解释一下我做错了什么吗?

从您是如何创建一个新的UploadeImage实体并尝试立即验证它来判断,我怀疑您没有正确处理表单数据

请看--它也概述了如何进行上载,但使用注释进行验证

您不必使用条令,因此可以忽略任何@ORM注释。在请求完成之前,您只需输出需要输出的任何内容

另外,我不确定它是如何粘贴的,但请检查validation.yml中的缩进级别(notFoundMessage、uploadErrorMessage等未正确缩进)


但书上是这么说的。创建一个映射对象,创建validator.yml并将该对象放入validate()方法中。就这样。我是否必须在UploadeImage对象中放入其他代码,如mimeType字段或上载的图像路径?目前,它只有$image属性和setter方法。此外,我还编辑了《意向书》。如果问题出在意图上,我想这是个错误。
Frizer\AdminBundle\Entity\UploadedImage:
    properties:
        image:
            - Image:
                notFoundMessage: Image not uploaded
                ...