2016-03-02 118 views
3

我正在使用VichUploader在symfony項目中上傳文件。在配置上,我使用(從文件複製):Symfony VichUploaderBundle:無法生成文件名

service: vich_uploader.namer_property 
options: { property: 'slug'} 

在我的實體我產生蛞蝓與Gedmo/Sluggable自動:

/** 
* @Gedmo\Slug(fields={"title"}, updatable=false) 
* @ORM\Column(type="string", length=100, nullable=false) 
*/ 
protected $slug; 

但試圖挽救我得到以下錯誤的實體時500 :

無法生成文件名:屬性slug爲空。

如果我將該屬性設置爲'標題'它的作品。我忘了一個配置參數或其他東西,讓它與Gedmo slug一起工作?

+0

我想原因是兩個bundle都使用'flush'事件來o perate和正在執行的順序錯誤... –

+0

但有機會配置嗎? – Nicki

+1

@Nicki你有沒有發現如何做?我剛剛得到同樣的問題 - 我改變了vich_uploader.namer_uniqid的名字作爲快速修復,但這不是我想要的。 –

回答

0

默認情況下,原則擴展包不附加任何監聽器: http://symfony.com/doc/current/bundles/StofDoctrineExtensionsBundle/index.html#activate-the-extensions-you-want

應配置得到sluggable工作:

stof_doctrine_extensions: 
    orm: 
     default: 
      sluggable: true 
+0

生成了slu but,但似乎它是在VichUploader嘗試訪問它之後生成的。 – Nicki

+0

@Nicki,你在config.yml中有上面的配置嗎? – malcolm

+0

不是確切的配置,因爲我沒有StofBundle安裝Gedmo。但是監聽器已配置並生成了slu gs聲。 – Nicki

-1

好,解決你的錯誤500的問題,它是隻需要在你的實體中創建一個公共函數getSlug():

public function getSlug() 
{ 
    // Or a slug function of return 
    return uniqid().'_file_test'; 
}