2017-05-27 17 views
0

私は現在、ブログスタイルのサイトを作成するために厳しいアプリケーションを使用しています。View Transformerを使用して文字列をファイルに変換する

ブログオブジェクトには、ファイルをアップロードする必要があります。ファイルのアップロードは、データベースに文字列として保存されます。ただし、既存のブログを編集しようとすると、このエラーが発生します。

The form's view data is expected to be an instance of class Symfony\Component\HttpFoundation\File\File, but is a(n) string. You can avoid this error by setting the "data_class" option to null or by adding a view transformer that transforms a(n) string to an instance of Symfony\Component\HttpFoundation\File\File. 

私はこれを行う方法を理解しようとしています。 Google検索では、ビュートランスフォーマーが再説明されたページを指していました。しかし、ここでは、文字列をエンティティ(および問題)に変換する方法を示しています。しかし、文字列を変換しようとしているオブジェクトがSymfony \ Component \ HttpFoundation \ File \ Fileクラスであるため、これを処理する方法が正確かどうかはわかりません。私は誰がこのことをどうやってやっていくことができるかを知っていることに疑問を抱いていました私は、Symfony \ Component \ HttpFoundation \ File \ Fileクラスの実際のファイルタイプを取得しなければならないという印象を受けています。どのようにこれを行うのですか?

答えて

3

だから私はこのことを理解するのに時間がかかりましたが、それは初めてのことでした。本質的には、BlogType.phpクラスのCallBackTranformer()関数を使用し、オブジェクトをフォームにレンダリングするときにこのオブジェクトのFileをnullオブジェクトに変換して、それを別の方向に返しただけです。

これは誰でも見たい場合のコードです。

$builder->get('imageUrl')->addModelTransformer(new CallBackTransformer(
     function($imageUrl) { 
      return null; 
     }, 
     function($imageUrl) { 
      return $imageUrl; 
     } 
    )); 
関連する問題