刪除()我使用L5.3.31並有以下型號:Laravel 5:擴展型號
附加組件
圖片
關係:
// Addon.php
public function images()
{
return $this->hasMany('App\Image');
}
// Image.php
public function addon()
{
return $this->belongsTo('App\Addon');
}
我現在想要擴展delete()
方法以刪除在刪除圖像對象時保存在文件系統上的一些圖像。據我瞭解,爲了做到這一點,我需要在Image模型上擴展delete()
方法。現在,在我的圖像模型,如果我嘗試這樣做:
public function delete()
{
dd('triggered');
parent::delete();
}
我希望它死並轉儲triggered
。但沒有任何反應,對象就像以前一樣被刪除。這告訴我上面的代碼塊在刪除時不會被執行,對吧?
我也在Addon模型上嘗試過相同的結果。最後,我想完成的是這個,當我做
$addon->images()->delete();
我想laravel刪除代表每個圖像對象的文件。另外,如果我做$addon->images()->where('id', '=', $id)->delete();
我想刪除給定的ID與對象的圖像文件。
順便說一句,我不知道這是否重要,但我已經設置關係級聯刪除,所以如果我做$addon->where('id', '=', $id)->delete();
它也刪除其相關的圖像對象。
你最好使用[listener/observer](https://laravel.com/docs/5.4/eloquent#observers)。 – Samsquanch