Php 扩展实体中的验证无效

Php 扩展实体中的验证无效,php,validation,symfony,Php,Validation,Symfony,我有一个具有受保护文件值的实体媒体 <?php namespace Chiave\MediaBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\HttpFoundation\File\UploadedFile; /** * @ORM\Table(name="media") * @ORM

我有一个具有受保护文件值的实体媒体

<?php

namespace Chiave\MediaBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\HttpFoundation\File\UploadedFile;

/**
 * @ORM\Table(name="media")
 * @ORM\Entity
 * @ORM\HasLifecycleCallbacks
 */
class Media
{


...

/**
     * @Assert\File(
     *     maxSize="5M"
     * )
     */
    protected $file;

您没有扩展媒体实体。您可以直接在表单生成器中使用约束,如下所示:

$builder
            ->add('images', 'collection', [
                'type' => new ImageType,
                'allow_add' => true,
                'allow_delete' => true,
                'by_reference' => false,
                'label' => ' ',
                'constraints' = new Image(array(
                    'minWidth' => 200,
                    'maxWidth' => 400,
                    'minHeight' => 200,
                    'maxHeight' => 400,
                ))
            ]);
不要忘记导入图像约束类:

use Symfony\Component\Validator\Constraints\Image

我使用vlabs媒体包来处理媒体的上传。也许这就是你想要的,你可以定义文件的扩展名
$builder
            ->add('images', 'collection', [
                'type' => new ImageType,
                'allow_add' => true,
                'allow_delete' => true,
                'by_reference' => false,
                'label' => ' ',
                'constraints' = new Image(array(
                    'minWidth' => 200,
                    'maxWidth' => 400,
                    'minHeight' => 200,
                    'maxHeight' => 400,
                ))
            ]);
use Symfony\Component\Validator\Constraints\Image