टेम्पलेट में स्टोर नाम कैसे प्राप्त करें?


13

Magento 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()


एक महान समाधान की तरह ढीले, लेकिन मुझे निम्न त्रुटि मिलती है: घातक त्रुटि: सदस्य फ़ंक्शन प्रेषण () में एक गैर-ऑब्जेक्ट पर /vendor/magento/framework/View/Element/AbstractBlock.php पर लाइन 637 पर कॉल करें।
डॉमिनिक बरन

var / पीढ़ी फ़ोल्डर स्पष्ट
मेरियस

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');

हालाँकि, ब्लॉक या सहायक से ऐसा करना क्लीनर होगा। नीचे एक सहायक वर्ग है जो आपके अपने कस्टम मॉड्यूल में मौजूद होगा

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

जिसे आप अपने ब्लॉक वर्ग में निर्भरता के रूप में इंजेक्ट करेंगे

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.