Итак, я следую за ответом на этот вопрос (https://magento.stackexchange.com/questions/184731/magento-2-implement-ui-fileuploader), но по какой-то причине, когда я загружаю изображение через страницу редактирования продукта и нажимаю сохранить, оно не сохраняется, я использую регистратор для входа вфайл, если Save.php выполняется, а он просто не работает, и я не могу понять, почему он не выполняется. Из ответа на вышеупомянутый вопрос все шаги 1-5 работают, насколько я могу, насколько я могувидите, но загруженное изображение не сохраняется в базе данных.
Вот мой Save.php Controller
<?php
namespace ImageUploader\Image\Controller\Adminhtml;
use Magento\Framework\Exception\LocalizedException;
class Save extends \Magento\Backend\App\Action
{
protected $dataPersistor;
public function __construct(
\Magento\Backend\App\Action\Context $context,
\Magento\Framework\App\Request\DataPersistorInterface $dataPersistor
) {
$this->dataPersistor = $dataPersistor;
parent::__construct($context);
}
public function execute()
{
// logger logging into a file if file is executed
$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/test.log');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info('working');
$data = $this->_filterFoodData($data);
$model->setData($data);
$model->save();
}
public function _filterFoodData(array $rawData)
{
//Replace icon with fileuploader field name
$data = $rawData;
if (isset($data['image'][0]['name'])) {
$data['image'] = $data['image'][0]['name'];
} else {
$data['image'] = null;
}
return $data;
}
}
, а вот мой DataProvider.php Model
<?php
namespace ImageUploader\Image\Model;
use Magento\Store\Model\StoreManagerInterface;
class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider
{
public function getData()
{
$items = $this->collection->getItems();
//Replace icon with fileuploader field name
foreach ($items as $model) {
$this->loadedData[$model->getId()] = $model->getData();
if ($model->getIcon()) {
$m['image'][0]['name'] = $model->getIcon();
$m['image'][0]['url'] = $this->getMediaUrl().$model->getIcon();
$fullData = $this->loadedData;
$this->loadedData[$model->getId()] = array_merge($fullData[$model->getId()], $m);
}
}
return $this->loadedData;
}
public function getMediaUrl()
{
$mediaUrl = $this->storeManager->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA).'imageuploader/tmp/image/';
return $mediaUrl;
}
}
Когда я проверяю URL запроса, он говорит: «Массив $ _FILES пуст, код ошибки: 0» при загрузке изображения отображается его предварительный просмотр, но когда я нажимаю «Сохранить», он исчезает ифайл Save.php ничего не регистрирует. Может кто-нибудь, пожалуйста, помогите мне, если вам нужна дополнительная информация, просто дайте мне знать.