2017-05-27 47 views
0

我目前使用一個CRUD應用程序創建一個博客網站風格文件。轉換一個字符串使用View變壓器

博客的對象需要一個文件的上傳,這是我在數據庫中存儲爲一個字符串。但是,當我嘗試編輯現有的博客時,出現此錯誤。

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. 

我想弄清楚如何做到這一點。谷歌搜索做點我到視圖變壓器重新解釋頁面。但也有例子顯示瞭如何將一個字符串轉換到實體(和問題)。但是,我不確定這是否正是我應該處理的方式,因爲我想將字符串轉換爲對象的類是Symfony \ Component \ HttpFoundation \ File \ File。我只是想知道有誰知道我該如何去做這件事。我的印象是,我將不得不獲得類Symfony \ Component \ HttpFoundation \ File \ File的實際文件類型,這正是我難以理解的。如何做到這一點?

回答

3

確定。所以也沒帶我一段時間來弄清楚這一點,但它是我的第一次。基本上,我所做的是使用BlogType.php類中的CallBackTranformer()函數,並將對象轉換爲對象,在此情況下,將文件轉換爲空對象,然後在其他方向上將其返回。

這裏是代碼,以防萬一任何人想看到它。

$builder->get('imageUrl')->addModelTransformer(new CallBackTransformer(
     function($imageUrl) { 
      return null; 
     }, 
     function($imageUrl) { 
      return $imageUrl; 
     } 
    ));