Привет,
Я пытаюсь понять, как просто удалить файл, прикрепленный к объекту. Я не хочу удалять весь объект сущности и не хочу заменять файл другим файлом. Просто удалите файл. Я просмотрел документацию и попробовал Google, но не нашел ничего полезного. Я также попытался установить для файловой переменной объекта сущности значение NULL и сохранить сущность. Но это не привело к удалению физического файла.
Любые подсказки приветствуются.
Лучший,
Андреас
Я разместил слишком быстро. Я решил это с помощью следующего кода:
$this->get('vich_uploader.storage')->remove($entity, 'file_mapping');
$entity->setFile(null);
$entity->setFileName(null);
Затем следует сохранение сущности.
Тогда закрываю этот вопрос :)
Я считаю, что такое поведение, заключающееся в том, что физический файл не удаляется, когда файловая переменная объекта сущности имеет значение null, скорее является ошибкой или отсутствующей функцией. Я думаю, что с
delete_on_update: true
установка переменной в значение null должна быть зафиксирована слушателем, а файл должен быть удален автоматически.
Об этом нужно упомянуть где-нибудь в документации :-)
Пакет усовершенствован, и теперь правильный способ удаления файла "вручную": $this->get('vich_uploader.upload_handler')->remove($entity, 'fieldName');
Инъекция vich_uploader.upload_handler
нарушает абстракцию. Пожалуйста, подумайте о реализации этого:
установка переменной в значение null должна быть зафиксирована слушателем, а файл должен быть удален автоматически.
Самый полезный комментарий
Я считаю, что такое поведение, заключающееся в том, что физический файл не удаляется, когда файловая переменная объекта сущности имеет значение null, скорее является ошибкой или отсутствующей функцией. Я думаю, что с
установка переменной в значение null должна быть зафиксирована слушателем, а файл должен быть удален автоматически.