[英]Laravel Voyager BREAD Image Edit and Delete Issue
我使用航海家BREAD系統上傳圖片時遇到問題。 如果我使用BREAD刪除或更新圖像,則舊圖像不會被替換或刪除。 它仍然在存儲目錄中。 我在laravel 5.5中使用了最新版本的voyager。 有什么解決辦法嗎? 預先謝謝你。
嘿,請檢查您項目的vendor/tcg/voyager/src/http/controllers/VoyagerBreadController.php
目錄中的以下文件
並檢查這個
public function deleteBreadImages($data, $rows) {...}
功能在第403行。
在此函數中找到$this->deleteFileIfExists($data->{$row->field});
取消注釋並檢查。
我希望這對您有幫助
不再有public function deleteBreadImages($data, $rows) {...}
在Laravel Voyager 1.2類文件中
vendor/tcg/voyager/src/http/controllers/VoyagerBreadController.php
在搜尋了同一天的問題兩天后,我想出了硬性解決方案...
在我的情況下,圖片字段名稱為img ,型號名稱為Company
在更新BREAD模型時執行代碼
可在Voyager 1.2上運行,希望對您有所幫助)
use Storage;
class Company extends Model
{
public static function boot()
{
parent::boot();
static::updating(function($model)
{
// Check if Old File Exists
$oldFileExists = Storage::disk('public')->exists($model->original['img']);
// If Old File Exists DELETE it, else Continue Adding New Image
if($oldFileExists)
{
//Get File Extension:: .jpg .png .gif
$fileExt = substr(strrchr($model->original['img'], "."), 0);
//If File is not .GIF
if($fileExt != '.gif'){
// Delete Old Non-GIF Image
Storage::disk('public')->delete($model->original['img']);
}
// Find .gif , -static.gif Old Images And Delete
else{
// filename-static.gif
$staticOld = str_replace($fileExt,"-static".$fileExt,$model->original['img']);
// Delete Old Image.gif
Storage::disk('public')->delete($model->original['img']);
// Delete Old Image-static .gif if Exists
if($staticOld) Storage::disk('public')->delete($staticOld);
}
}
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.