Как получить медиа-путь в Magento 2.1. Я перепробовал много вариантов, но он не работает?
Я хочу отобразить изображение в front-end файле .phtml.
Как получить медиа-путь в Magento 2.1. Я перепробовал много вариантов, но он не работает?
Я хочу отобразить изображение в front-end файле .phtml.
Ответы:
вы можете получить путь к медиа с помощью $ объектного метода
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
echo $objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
метод фабрики
<?php
namespace Namespace\Modulename\Block;
use Magento\Framework\ObjectManagerInterface;
class Banners extends Template
{
protected $objectManager;
public function __construct(
.......
ObjectManagerInterface $objectManager
...) {
...........
$this->objectManager = $objectManager;
...............
}
public function getMediaUrl(){
$media_dir = $this->objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
return $media_dir;
}
}
........
?>
в файле phtml
<?php echo $block->getMediaUrl(); ?>
Использование Object Manager не рекомендуется в соответствии со стандартами кодирования Magento. В файле шаблона мы можем получить медиа-URL, используя следующий код:
$this->helper('\Magento\Cms\Helper\Wysiwyg\Images')->getBaseUrl()
В соответствии с рекомендациями Magento, корень документа на вашем веб-сайте должен находиться вне pub
каталога во время разработки, и он должен находиться внутри pub
каталога при перемещении в производство.
Следовательно, мы не можем жестко закодировать pub
каталог при получении медиа-URL в файлах шаблонов. Приведенный выше код даст вам правильный медиа-URL независимо от корневого расположения вашего документа.
Получить медиа-путь с помощью objectManager
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
echo $objectManager->get('Magento\Store\Model\StoreManagerInterface')
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
Получить путь к медиа с помощью внедрения зависимостей
protected $_storeManager;
public function __construct(
...
\Magento\Store\Model\StoreManagerInterface $storeManager,
...
) {
...
$this->_storeManager = $storeManager;
...
}
public function getMediaUrl()
{
$mediaUrl = $this->_storeManager
->getStore()
->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
return $mediaUrl;
}
Теперь вызовите функцию getMediaUrl()
в phtml
<?php echo $block->getMediaUrl(); ?>
$ Это -> _ storeManager-> getStore () -> getBaseUrl (\ Magento \ Framework \ UrlInterface :: URL_TYPE_MEDIA);
Пожалуйста, проверьте этот код. Это даст вам медиа-путь.