как удалить файл или изображение в magento 2. Я знаю, с помощью unlink('full file path');
удалит файл, но я хочу сделать magento 2 пути . условие, когда пользователь checked
удаляет checkbox
.
9
Очень важный вопрос, так как, по моему опыту, при представлении расширения для торговой площадки, проверка вызвала ошибки, связанные с использованием такого метода напрямую. Я исследовал и нашел следующее решение.
добавить это \Magento\Framework\Filesystem\Driver\File $file
в ваш конструктор
(не забудьте объявить переменную уровня класса, т. е. protected $_file;
)
и тогда вы можете получить доступ к методам, которые включают в себя: isExists
иdeleteFile
например: в конструкторе
public function __construct(\Magento\Backend\App\Action\Context $context,
\Magento\Framework\Filesystem\Driver\File $file){
$this->_file = $file;
parent::__construct($context);
}
а затем в методе, где вы пытаетесь удалить файл:
$mediaDirectory = $this->_objectManager->get('Magento\Framework\Filesystem')->getDirectoryRead(\Magento\Framework\App\Filesystem\DirectoryList::MEDIA);
$mediaRootDir = $mediaDirectory->getAbsolutePath();
if ($this->_file->isExists($mediaRootDir . $fileName)) {
$this->_file->deleteFile($mediaRootDir . $fileName);
}
надеюсь это поможет.
Ответ RT хороший, но мы не должны использовать ObjectManager непосредственно в примере.
Причина здесь " Magento 2: использовать или не использовать ObjectManager напрямую ".
Итак, лучший пример ниже:
источник