Як пройти шлях до медіа у Magento 2.1. Я спробував багато варіантів, але він не працює?
Я хочу відобразити зображення у фронтальному файлі .phtml.
Як пройти шлях до медіа у Magento 2.1. Я спробував багато варіантів, але він не працює?
Я хочу відобразити зображення у фронтальному файлі .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(); ?>
Використання диспетчера об'єктів не обмежується відповідно до стандартів кодування 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(); ?>
$ this -> _ storeManager-> getStore () -> getBaseUrl (\ Magento \ Framework \ UrlInterface :: URL_TYPE_MEDIA);
Перевірте цей код. Це дасть вам медіа-шлях.