Magento 2 - phtml फ़ाइलों में एक्सटेंशन के कॉन्फ़िगरेशन मान कैसे प्राप्त करें?


21

मैं Magento 2 के साथ काम कर रहा हूँ - बीटा।

लेकिन कैसे phtml फ़ाइलों में कॉन्फ़िगरेशन मान प्राप्त करने के लिए नहीं मिल सकता है।

उदाहरण: मैं Magento_Catalog/templates/product/list.phtmlफ़ाइल में अपने कस्टम मॉड्यूल कॉन्फ़िगरेशन मान प्राप्त करना चाहता हूं ।

क्या कोई जानता है कि इसे कैसे करना है?


क्या आप वास्तविक जीवन का उदाहरण दे सकते हैं? वास्तव में क्या आप पुनः प्राप्त करने की कोशिश कर रहे हैं?
मेरियस

जवाबों:


43

आप अपने कस्टम मॉड्यूल के सहायक में कॉन्फ़िगरेशन मान प्राप्त करने के लिए एक फ़ंक्शन बना सकते हैं।

<?php
namespace Vendor\Module\Helper;

class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
    public function getConfig($config_path)
    {
        return $this->scopeConfig->getValue(
            $config_path,
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
}

तब आप किसी भी phtml फ़ाइलों में इस फ़ंक्शन को कॉल करने के लिए कॉन्फ़िगरेशन मान प्राप्त कर सकते हैं।

$this->helper('Vendor\Module\Helper\Data')->getConfig('section/group/field');

1
यह बताने के लिए धन्यवाद कि ScopeConfigInterface अमूर्त सहायक वर्ग से उपलब्ध है! मुझे इसे पुनर्परिभाषित किया।
रॉबी एवरिल

यह डिफ़ॉल्ट कॉन्फ़िगरेशन मान के साथ कैसे काम करेगा? मैं दुकान config में फोन नंबर के सेट प्राप्त करने के लिए कैसे पता लगाने और header.phtml में यह प्रदर्शित करने के लिए कोशिश कर रहा हूँ
फिलिप Deatherage

@ मुझे लगता है कि आपको अभी भी \Magento\Framework\App\Config\ScopeConfigInterfaceसहायक के निर्माता में इंजेक्शन लगाने की आवश्यकता है
fmsthird

6

एक और तरीका नीचे है

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('group/field/value');

आपको किसी मॉडल के तात्कालिकता के लिए ऑब्जेक्ट मैनेजर का उपयोग कभी नहीं करना चाहिए
डेव

यहाँ यह एक गलत है।
मदीना

0

रुशवी के जवाब में सुधार: इसके section/group/field

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('section/group/field');

इसके अलावा अगर आप स्टोर फ़िल्टर जोड़ना चाहते हैं उदाहरण के लिए पाठ प्रदर्शित करना चाहते हैं यदि स्टोर कॉन्फ़िगरेशन स्तर पर सहेजें तो बस निम्नलिखित जोड़ें:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORES;
$conf = $objectManager->get('Magento\Framework\App\Config\ScopeConfigInterface')->getValue('carriers/freeshipping/extra_info',$storeScope);

समालोचकों के लिए दूसरा: डी के माध्यम से अपने ब्लॉक क्लास के कंस्ट्रक्टर में शामिल करने के लिए यह अच्छा है। यहाँ सिर्फ अवधारणा है

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