moonshine-software / moonshine

Laravel Admin panel and more. Simple for beginners and powerful for experts. Using Blade, Alpine.js and Tailwind CSS.
https://moonshine-laravel.com
MIT License
714 stars 94 forks source link

Копятся изображения на диске #1184

Closed i-prikot closed 1 month ago

i-prikot commented 1 month ago

MoonShine Version 2.20

Laravel Version 10.10

PHP Version 8.1

Description

Когда делаю замену изображения одного на другое, то старое изображение не удаляется с диска. Хотя если удалить изображение на крестик, то отработает корректно.

Image::make('Карта', 'file')->removable()->allowedExtensions(['jpg','jpeg','png'])
i-prikot commented 1 month ago

Ещё кто-то может помочь понять метод removeExcludedFiles (trait MoonShine\Traits\Fields\FileTrait). $values содержит значение поля (сейчас это название старого файла, наверно, по логике должно быть значение из поля input[type=file], новое название) $this->getRemainingValues() содержит название старого файла. Соответственно diff возвращает пустой массив, так как мы сравниваем два массива с одинаковыми значениями.

public function removeExcludedFiles(): void
    {
        $values = collect(
            $this->toValue(withDefault: false)
        );

        $values->diff($this->getRemainingValues())->each(fn (string $file) => $this->deleteFile($file));
    }