मैं Magento 2 में दृश्यपटल में magento व्यवस्थापक में सहेजा गया फोन नंबर प्रदर्शित करना चाहता हूं।
जैसे Magento 1.9 में इसकी तरह
$storePhone = Mage::getStoreConfig('general/store_information/phone');
मैं Magento 2 में दृश्यपटल में magento व्यवस्थापक में सहेजा गया फोन नंबर प्रदर्शित करना चाहता हूं।
जैसे Magento 1.9 में इसकी तरह
$storePhone = Mage::getStoreConfig('general/store_information/phone');
जवाबों:
आपको Magento/Store/Model/Information
कक्षा का उपयोग करना होगा और उसके लिए getStoreInformationObject()
विधि को कॉल करना होगा ।
यद्यपि आपको अपने खाके में उपयोग करने में सक्षम होने के लिए अपने कस्टम ब्लॉक में इस वर्ग को इंजेक्ट करना होगा।
protected $_storeInfo;
public function __construct(
....
\Magento\Store\Model\Information $storeInfo,
....
) {
...
$this->_storeInfo = $storeInfo;
....
}
फिर फोन नंबर प्राप्त करने के लिए एक कस्टम विधि बनाएं:
public function getPhoneNumber()
{
return $this->_storeInfo->getStoreInformationObject(Store $store)->getPhone();
}
इस प्रकार आपके टेम्पलेट में आप कॉल कर सकते हैं:
$block->getPhoneNumber();
आपको कभी भी ऑब्जेक्ट मैनेजर का उपयोग सीधे नहीं करना चाहिए (देखें कि यहां क्यों: मैगेंटो 2: ऑब्जेक्ट मैनजर का सीधे उपयोग करने या न करने के लिए? )
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeInformation = $objectManager->create('Magento/Store/Model/Information');
$storeInfo = $storeInformation->getStoreInformationObject($store);
तब आप फोन कॉल करके प्राप्त कर सकते हैं:
$phone = $storeInfo->getPhone();
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeInformation = $objectManager->create('Magento\Store\Model\Information');
$store = $objectManager->create('Magento\Store\Model\Store');
$storeInfo = $storeInformation->getStoreInformationObject($store);
$phone = $storeInfo->getPhone();
आपको \Magento\Framework\App\Config\ScopeConfigInterface
अपने ब्लॉक में एक इंस्टेंस को इंजेक्ट करने की आवश्यकता है ।
$protected $scopeConfig;
public function __construct(
....
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
....
) {
...
$this->scopeConfig = $scopeConfig;
....
}
फिर विधि बनाएं getStorePhone()
public function getStorePhone()
{
return $this->scopeConfig->getValue(
'general/store_information/phone',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
}
और अपने टेम्पलेट में कॉल करें echo $block->getStorePhone()
ऊपर दिए गए तरीके काम नहीं कर रहे थे इसलिए मैंने निम्नलिखित तरीके से कोशिश की है और यह मेरे लिए काम कर रहा है ...
namespace Vendor\Module\Block;
class Contact extends \Magento\Framework\View\Element\Template
{
protected $_storeInfo;
protected $_storeManagerInterface;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Store\Model\Information $storeInfo,
\Magento\Store\Model\StoreManagerInterface $storeManagerInterface,
array $data = []
)
{
parent::__construct($context, $data);
$this->_storeInfo = $storeInfo;
$this->_storeManagerInterface = $storeManagerInterface;
}
public function getPhoneNumber()
{
return $this->_storeInfo->getStoreInformationObject($this->_storeManagerInterface->getStore(null))->getPhone();
}
}
और टेम्पलेट फ़ाइल में मैंने बुलाया है
echo $block->getPhoneNumber();
उपरोक्त कोड मेरे लिए काम नहीं कर रहा है। मैंने निम्नलिखित कोड की कोशिश की है जो काम करता है।
class Sociallinks extends \Magento\Framework\View\Element\Template
{
protected $socialLinksHelper;
protected $objMgr;
protected $storeInfo;
protected $scopeConfig;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Addpeople\Websettings\Helper\Data $myModuleHelper,
array $data = []
) {
parent::__construct($context, $data);
$this->_socialLinksHelper = $myModuleHelper;
$this->_objMgr = \Magento\Framework\App\ObjectManager::getInstance();
$storeInformation = $this->_objMgr->create('Magento\Store\Model\Information');
$store = $this->_objMgr->create('Magento\Store\Model\Store');
$this->_storeInfo = $storeInformation->getStoreInformationObject($store);
}
public function getPhoneNumber()
{
return $this->_storeInfo->getPhone();
}
}
टेम्पलेट फ़ाइल
<?php echo $block->getPhoneNumber();?>
हम भी उपयोग कर सकते हैं:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storePhone = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('general/store_information/phone');