। Phtml ফাইলে Magento 2.1 মিডিয়া পাথ


9

ম্যাজেন্টো ২.১-এ মিডিয়া পাথ কীভাবে পাবেন। আমি প্রচুর বিকল্প চেষ্টা করেছিলাম কিন্তু এটি কাজ করছে না?

আমি .phtml ফাইলের অভ্যন্তরে চিত্রটি সামনে-এন্ডে প্রদর্শন করতে চাই।


আপনি কি আমাদের এতদূর চেষ্টা করেছেন এবং এর সাথে যুক্ত ফলাফলগুলি কী দেখাতে পারেন?
জুলিয়েন লাচাল

উত্তর:


11

আপনি $ অবজেক্ট পদ্ধতিতে মিডিয়া পাথ পেতে পারেন

$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(); ?>

11

ম্যাজেন্টোর কোডিং মান অনুযায়ী অবজেক্ট ম্যানেজারের ব্যবহার নিরুত্সাহিত করা হয়। একটি টেমপ্লেট ফাইলে, আমরা নিম্নলিখিত কোডটি ব্যবহার করে মিডিয়া URL পেতে পারি:

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

ম্যাজেন্টোর সুপারিশ অনুসারে, আপনার ওয়েবসাইটের নথির মূলটি pubবিকাশের সময় ডিরেক্টরিগুলির বাইরে থাকা উচিত এবং এটি pubযখন উত্পাদনে স্থানান্তরিত হয় তখন ডিরেক্টরি ভিতরে থাকা উচিত ।

সুতরাং আমরা pubটেমপ্লেট ফাইলগুলিতে মিডিয়া URL পাওয়ার সময় ডিরেক্টরিটিকে হার্ড কোড করতে পারি না । উপরের কোডটি আপনার নথির মূল অবস্থান নির্বিশেষে আপনাকে সঠিক মিডিয়া URL দেবে।


1
+1 অবজেক্ট ম্যানেজারের জন্য 20 টি লাইন কোড যুক্ত করার কথা চিন্তা করা কেবল বিবেচনা করার জন্য ভয়ঙ্কর মনে হচ্ছে।
মোহাম্মদ জোড়াইদ

7

অবজেক্টম্যানেজারের মাধ্যমে মিডিয়া পাথ পান

$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(); ?>

0

এই $ ->: _ storeManager-> getStore () -> getBaseUrl (\ Magento \ ফ্রেমওয়ার্ক \ UrlInterface :: URL_TYPE_MEDIA);

দয়া করে এই কোডটি পরীক্ষা করুন। এটি আপনাকে মিডিয়া পাথ দেবে।


2
এটি একটি পিএফটিএমএল ফাইলে কাজ করে না কারণ _স্টোরম্যানেজারের সম্পত্তিটি সুরক্ষিত রয়েছে
সিমোথেন্সোরেরার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.