2016-06-26 14 views
3

私は命令に従いました: https://github.com/dustin10/VichUploaderBundle/blob/master/Resources/doc/usage.mdを手紙にしましたが、エンティティ:VichUploaderBundle - "AppBundle Entity File"、 "Symfony Component HttpFoundation File UploadedFile"タイプの予想される引数

Expected argument of type "AppBundle\Entity\File", "Symfony\Component\HttpFoundation\File\UploadedFile" given 

ここでは、コードです:

/** 
* @ORM\Entity 
* @ORM\Table(name="symfony_demo_user") 
* @Vich\Uploadable 
*/ 
class User extends BaseUser implements UserInterface 
{ 
    /** 
    * @Vich\UploadableField(mapping="avatar_image", fileNameProperty="avatarName") 
    * 
    * @var File 
    */ 
    private $avatarFile; 

    /** 
    * @ORM\Column(type="string", length=255, nullable=true, options={"default": 0}) 
    * 
    * @var string 
    */ 
    private $avatarName;  

    /** 
    * @ORM\Column(type="datetime") 
    * 
    * @var \DateTime 
    */ 
    private $updatedAt; 
/** 
* @param File|\Symfony\Component\HttpFoundation\File\UploadedFile $image 
* 
* @return User 
*/ 
public function setAvatarFile(File $image = null) 
{ 
    $this->avatarFile = $image; 

    if ($image) { 
     // It is required that at least one field changes if you are using doctrine 
     // otherwise the event listeners won't be called and the file is lost 
     $this->updatedAt = new \DateTime('now'); 
    } 

    return $this; 
} 

/** 
* @return File 
*/ 
public function getAvatarFile() 
{ 
    return $this->avatarFile; 
} 

マイフォーム:

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Vich\UploaderBundle\Form\Type\VichImageType; 

class ProfileFormType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     # no translation_domain means - app translations from ~/app/translations/ 
     $builder 
      ->add('avatarFile', 'vich_image'); 
    } 

問題があることはご存知ですか?

答えて

8

setAvatarFileの方法では、クラスFileのアイテムを待っていると言います。このクラスのネームスペースを設定してクラスを探しませんでしたAppBundle\Entity\File

ファイルの先頭にuse Symfony\Component\HttpFoundation\File\Fileを追加してください。

+0

ありがとう、それはトリックでした! – Torpedr

関連する問題