簡體   English   中英

Laravel Voyager面包圖像編輯和刪除問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM