2017-09-07 7 views
0

私はFileTypeフィールドを含むフォームを持っています。 multipleオプションをtrueに設定したので、ユーザーは複数のファイルを同時にアップロードできます。私が前に中括弧を追加複数のファイルアップロードでのsymfony検証

UnexpectedTypeException in FileValidator.php line 168: 
Expected argument of type "string", "array" given 

:私はフォームを送信すると

 /** 
    * @Assert\NotBlank() 
    * @Assert\File(mimeTypes = {"application/pdf", "application/x-pdf", "image/jpeg", "image/png"}) 
    * @ORM\Column(type="array") 
    */ 
    private $myFile; 

が、私はエラーを取得する:ここで

$builder->add('myFile', FileType::class, [ 
       'label' => 'upload file', 
       'multiple' => true, 
]) 

は、エンティティ内の対応するプロパティは、このフォームに接続されていますof Fileアサートすると、次のようになります。

* @Assert\File{}(mimeTypes = {"application/pdf", "application/x-pdf", "image/jpeg", "image/png"}) 

これで、フォームを送信するときに不平を言うことはありません。ファイルタイプの検証もチェックされません。

複数のファイルを選択してファイルタイプを設定するにはどうすればよいですか?

答えて

0

Fileの配列を検証しているので、Allバリデーターを適用する必要があります。バリデーターは配列の各要素に内部バリデーターを適用します。

ようなもので試してみてください:

/** 
* @Assert\All({ 
*  @Assert\NotBlank() 
*  @Assert\File(mimeTypes = {"application/pdf", "application/x-pdf", "image/jpeg", "image/png"}) 
* }) 
* @ORM\Column(type="array") 
*/ 
private $myFile; 
関連する問題