Удаление файлов
При очистке в админке поля типа "файл" значение поля в БД очищается, но непосредственно файл остается храниться на файловой системе.
Из-за этого размер папки userfiles будет необосновано разростаться.
Как сделать чтобы при очистке значения поля, файл тоже удалялся?
protected $model_elements = [ // Речь о вот таком поле. ['Векторная Иконка', 'image', 'image', [ 'required' => true, 'allowed_extensions' => ['svg'], 'max_size' => 500000 ] ] ];
Напишите пожалуйста подробнее как вы очищаете файловое поле в в админке?
Дело в том что когда запись редактируется в админке, то сохраняется история изменений в таблицу versions.
Когда же вы удаляете запись из моделей через админку то она вначале помещается в корзину а уже после удаления из корзины удаляется окончательно и далее удаляются все ее версии и файлы которые были к ней прикреплены.
Максим, вот скриншот с подробностями.
https://www.imagebam.com/view/MEZB4TN
Целиком запись (строку, экземпляр модели) я не удаляю.
Я удаляю через админку лишь изображение (значение поля) и загружаю изображение снова.
Я сделал это 9 раз и вот у меня на файловой 9 изображений, 8 из которых неактуальны.
Это при том что количество хранимых версий выставлено в значение 5.
Хотелось-бы чтобы ненужные файлы удалялись и не занимали место.
Пробовал отключать историю изменений вовсе.
Но файл всё равно не удаляется при замене на новый.
'ModelVersionsLimit' => false,
Тогда попробуйте воспользоваться событием beforeUpdate пример тут https://mv-framework.ru/nastroika-modeli
В нем можно сравнить старое и новое значение файлового поля и потом удалить файл.
Вам понадобится файловый корень, как его получить есть пример здесь https://mv-framework.ru/sistemnye-nastroiki
Спасибо.
Попробую.