Magento 2.1 Jalur media dalam file .phtml


9

Cara mendapatkan jalur media di Magento 2.1. Saya mencoba banyak pilihan tetapi tidak berhasil?

Saya ingin menampilkan gambar di front-end di dalam file .phtml.


Bisakah Anda menunjukkan kepada kami apa yang telah Anda coba sejauh ini dan apa hasil yang terkait?
Julien Lachal

Jawaban:


11

Anda bisa mendapatkan jalur media dengan metode $ objek

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
echo $objectManager->get('Magento\Store\Model\StoreManagerInterface')
                    ->getStore()
                    ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);

metode pabrik

<?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;
        }
    }
    ........
?>

dalam file phtml

<?php echo $block->getMediaUrl(); ?>

11

Penggunaan Object Manager tidak disarankan sesuai standar pengkodean Magento. Dalam file template, kita bisa mendapatkan URL media menggunakan kode berikut:

$this->helper('\Magento\Cms\Helper\Wysiwyg\Images')->getBaseUrl()

Sesuai rekomendasi Magento, akar dokumen situs web Anda harus berada di luar pubdirektori selama pengembangan dan harus di dalam pubdirektori ketika dipindahkan ke produksi.

Karenanya kami tidak dapat membuat kode dari pubdirektori saat mendapatkan URL media dalam file templat. Kode di atas akan memberi Anda URL media yang benar terlepas dari lokasi root dokumen Anda.


1
+1 Berpikir tentang menambahkan 20 baris kode untuk Object Manager terdengar mengerikan hanya untuk dipertimbangkan.
Mohammed Joraid

6

Dapatkan jalur media dengan objectManager

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
echo $objectManager->get('Magento\Store\Model\StoreManagerInterface')
                    ->getStore()
                    ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);

Dapatkan jalur media dengan Injeksi Ketergantungan

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;
}

Sekarang panggil fungsi getMediaUrl()dalam phtml

<?php echo $block->getMediaUrl(); ?>

0

$ this -> _ storeManager-> getStore () -> getBaseUrl (\ Magento \ Framework \ UrlInterface :: URL_TYPE_MEDIA);

Silakan periksa kode ini. Ini akan memberi Anda jalur media.


2
Ini tidak berfungsi dalam file .phtml karena properti _storeManager dilindungi
simonthesorcerer
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.