Magento 2.2.5: изображение не сохраняется в базе данных с загрузчиком файлов пользовательского интерфейса - PullRequest
0 голосов
/ 26 сентября 2018

Итак, я следую за ответом на этот вопрос (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 ничего не регистрирует. Может кто-нибудь, пожалуйста, помогите мне, если вам нужна дополнительная информация, просто дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...