2017-04-11 64 views
2

我有一個實體File()可以刪除。鏈接到實體,/upload中有一個實際文件,名稱爲$file->getName()。當File()實體被刪除時,刪除文件的最好方法是什麼?我應該在控制器中執行該操作,還是可以將實體銷燬時觸發的方法放入File()在symfony中刪除實體時刪除文件

回答

5

處理這種情況的最好方法是使用Doctrine生命週期事件(在您的情況下,preRemove是個不錯的選擇)。

你不應該在你的控制器中處理它,因爲你的實體可以在任何地方被刪除(例如:在你的服務中,級聯刪除...)。如果您要將偵聽器創建爲具有依賴注入的服務,請參閱Doctrine Events和Symfony關於How to Work with Lifecycle CallbacksHow to Register Event Listeners and Subscribers的文檔。