টেমপ্লেটে স্টোরের নাম কীভাবে পাবেন?


13

কাস্টম ব্লকের সাহায্যে বর্তমান স্টোরের নামটি ম্যাজেন্টো 2 কাস্টম টেমপ্লেটে আউটপুট করা কীভাবে সম্ভব?


কি টেম্পলেট ??
মারিয়াস

একটি কাস্টম ব্লক ব্যবহার করে কাস্টম টেম্পলেট
ডোমিনিক বারান

উত্তর:


17

\Magento\Framework\App\Config\ScopeConfigInterfaceআপনার ব্লকটির উদাহরণটি আপনার ব্যবহার করতে হবে :

পদ্ধতিটি তৈরি করুন getStoreName()

public function getStoreName()
{
    return $this->_scopeConfig->getValue(
        'general/store_information/name',
        \Magento\Store\Model\ScopeInterface::SCOPE_STORE
    );
}

এবং আপনার টেম্পলেট কল echo $this->getStoreName()


সদস্য ফাংশন প্রেরণ () লাইন 637 উপর /vendor/magento/framework/View/Element/AbstractBlock.php একটি অ বস্তুর উপর থেকে কল: একটি দুর্দান্ত সমাধান মত এ Loos, কিন্তু আমি নিম্নলিখিত ত্রুটির পাবেন: মারাত্মক ত্রুটি
ডমিনিক বারান

ভেরি / প্রজন্মের ফোল্ডারটি সাফ করুন
মারিয়াস

1
@ মারিয়াসের দৃষ্টিভঙ্গি সঠিক, তবে এটি আমার পক্ষে কার্যকর হয়নি। পরিবর্তে আমি ব্যবহার করেছি \Magento\Store\Model\StoreManagerInterface $storeManager কন্সট্রাকটর এবং public function getStoreName() { return $this->storeManager->getStore()->getName(); } বদলে getName()আপনি ব্যবহার করতে পারেন getCode(), getId()
রাজ্জওয়ান

9

স্টোর ম্যানেজার ব্যবহার করুন, যা সক্রিয় স্টোর সম্পর্কে তথ্য রাখে। যদি কাস্টম ব্লকটি Templateব্লক থেকে উত্তরাধিকার সূত্রে না পাওয়া যায় তবে \Magento\Store\Model\StoreManagerInterfaceকনস্ট্রাক্টের উপর নির্ভরতা ইনজেকশন করুন ।

<?php
namespace VendorName\ModuleName\Block;

class CustomBlock extends \Magento\Framework\View\Element\Template
{
    /**
     * Get current store name.
     *
     * @return string
     */
    public function getCurrentStoreName()
    {
        return $this->_storeManager->getStore()->getName();
    }
}

তারপরে টেমপ্লেটে:

<?php
/**
 * @var $block \VendorName\ModuleName\Block\CustomBlock
 */
echo "<h1>Current store name is '{$block->getCurrentStoreName()}'</h1>";
?>

আপনার সমাধানের জন্য ধন্যবাদ, তবে আমি স্টোর ভিউ নামটি দেখাতে চাই না। কনফিগারেশনের স্টোর নামের জন্য অনুসন্ধান করা।
ডোমিনিক বারান

4

একটি স্টোর কনফিগারেশন মান পেতে general/store_information/nameআপনি নিম্নলিখিত ব্যবহার করতে পারেন

$config = new \Magento\Framework\App\Config\ScopeConfigInterface();

echo $config->getValue('general/store_information/name');

তবে কোনও ব্লক বা সাহায্যকারী থেকে এটি করা আরও পরিষ্কার হবে er নীচে এমন একটি সহায়ক শ্রেণি রয়েছে যা আপনার নিজস্ব কাস্টম মডিউলে উপস্থিত থাকবে

namespace [Namespace]\[Module]\Helper;

class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
    /**
     * Retrieve store name
     *
     * @return string|null
     */
    public function getStoreName()
    {
        return $this->scopeConfig->getValue(
            'general/store_information/name',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
}

যা আপনি আপনার ব্লক শ্রেণিতে নির্ভরতা হিসাবে ইনজেক্ট করবেন

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