2015-02-04 2 views
0

symfony2/doctrine 2에서는 응용 프로그램에서 업로드 된 파일을 검사하기 위해 유효성 검사 제약 조건을 사용하려고합니다.symfony2는 폼 내에서 파일 유형을 어설 션합니다. throws unexpectedTypeException

기본 엔티티는 웹 사이트에서 다른 종류의 미디어에 사용할 수있는 일반 미디어 엔터티이므로 해당 유효성 검사 제약 조건을 관련 양식 유형에 넣으려고합니다.

내가 어설 션을 넣지 않으면 업로드가 올바르게 수행됩니다. 그렇게되면 , 나는 다음과 같은 오류가 발생합니다 :

Expected argument of type "string", "Doctrine\ORM\PersistentCollection" given 
Stack Trace 
in vendor/symfony/symfony/src/Symfony/Component/Validator/Constraints/FileValidator.php at line 119 - 
     } 
     if (!is_scalar($value) && !$value instanceof FileObject && !(is_object($value) && method_exists($value, '__toString'))) { 
      throw new UnexpectedTypeException($value, 'string'); 
     } 
     $path = $value instanceof FileObject ? $value->getPathname() : (string) $value; 

내 폼 타입 : 내가 잘못 뭐하는 거지

->add('medias', 'collection', array(
      'type' => new MediaType(), 
      'by_reference' => false, 
      'label'=>'Images et vidéos', 
      'allow_add' => true, 
      'allow_delete' => true, 
      'required' => false, 
      'cascade_validation' => true, 
      'constraints' => array(
       new Assert\File(array('mimeTypes' => array("video/mpeg"), 'mimeTypesMessage' => "The file is not a video")) 
      ), 
      'attr'=>array(
       'data-toggle'=>"tooltip", 
       'data-placement'=>"top", 
       'title'=>"Ajoutez des images ou vidéos pour décrire la recette", 
      ))) 

?

답변

0

Arf, 피곤했는데,이 Assert를 다른 Assert \ All에 넣어야합니다. 컬렉션이기 때문에 오류가 발생합니다.