2017-04-11 15 views
0

私は多くのチュートリアルを試したことがあり、今はアイデアがありません。私はシステムにアップロードされた各ファイルの詳細を保持するファイルエンティティを作成し、OneToOne関係を他のエンティティに使用したいと考えています。私はSymfony 2.4でこのアプローチを使用しましたが、それは問題ありませんでしたが、Symfony 3では予期せぬエラーが発生します。私はバックエンドのデータ管理のためにSonata Adminを使用します。後Expected value of type "File" for association field "Post#$file", got "array" instead.Symfony 3とSonata管理者のファイルアップロード

+0

このエンティティにフォームクラスを提供できますか? – xReprisal

答えて

0

:問題の一つは、だから私はポストエンティティ

class Post extends BasePageModel 
{ 
    ... 
    /** 
    * @ORM\OneToOne(targetEntity="File", cascade={"persist"}) 
    * @ORM\JoinColumn(name="file_id", onDelete="CASCADE", referencedColumnName="id") 
    */ 
    protected $file; 

    ... 

    /** 
    * Set file 
    * 
    * @param File $file 
    * 
    * @return Post 
    */ 
    public function setFile(File $file = null) 
    { 
     $this->file = $file; 

     return $this; 
    } 

    /** 
    * Get file 
    * 
    * @return File 
    */ 
    public function getFile() 
    { 
     return $this->file; 
    } 

    ... 

} 

を持っていると私は、エラーを受信して​​います私は

setFileファイルセッターに代わりFileオブジェクトの配列を取得していますということですデータはこのファイルを根底その後

public function configureOptions(OptionsResolver $resolver) 
{ 
    $resolver->setDefaults(array(
     'data_class' => BaseFile::class 
    )); 
} 

:フォーム型クラスを掘り下げる私はconfigureOptions経由data_classとはsetDefaultsしなかったことに気づきました配列ではなくFileオブジェクトになっています。

関連する問題