Come ottenere valore dalla tabella `core_config_data` in Magento 2


41

Magento 1.x usa Mage::getStoreConfig('sections/groups/fields')get data on core_config_datatable.

Come Magento2 ottiene valore dalla core_config_datatabella?

Risposte:


100

Dobbiamo chiamare il metodo predefinito disponibile.

Basta usare \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, nell'argomento del costruttore e impostare la proprietà class:$this->scopeConfig = $scopeConfig;

Ora per ottenere il valore di configurazione basta usare

$this->scopeConfig->getValue('dev/debug/template_hints', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);

Ho la risposta da questo link e faccio riferimento a questo


3
bravo Meenakshi! continuate così
anshuman

Come ottenerli da uno script separato, non dall'interno del filesystem magento o da un modulo? Se crei una classe nel tuo script e la crei un'istanza, da cosa dovrebbe ereditare la classe e come assicurarti che carichi tutti i file corretti?
ahnbizcad,

Da quale ambito ottiene la configurazione? Lo storeview attualmente visualizzato dal cliente?
Erfan,

sì, ci vorrà la vista del negozio attuale del cliente
Meenakshi

@MeenakshiSundaramR Sto chiedendo, a parte questo post, come offrire la spedizione gratuita per i prodotti selezionati usando sku. Aiutami a magento.stackexchange.com/q/215022/57334
zus,

4

Crea una funzione per ottenere valori di configurazione nell'helper del tuo modulo personalizzato.

public function getConfig($config_path)
{
    return $this->scopeConfig->getValue(
            $config_path,
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
            );
}

e chiama ovunque tu voglia, ad esempio in test.phtml

$moduleStatus = $this->helper('Customvendorname\Custommodulename\Helper\Data')->getConfig('sectionid/groupid/fieldid');

In block e helper chiama così:

 $this->_objectManager->create('Customvendorname\Custommodulename\Helper\Data')->getConfig('sectionid/groupid/fieldid');

7
Si consiglia in M2 di preferire l'approvazione DI. Pertanto, l'uso $this->_objectManager->create(...)dovrebbe essere evitato.
Anna Völkl,

Grazie @ AnnaVölkl, qual è la sostituzione di questo, per favore puoi pubblicare una risposta simile qui?
Manish,

Vedi la risposta votata sopra.
Anna Völkl,

3

Ho usato il seguente metodo per recuperare le variabili

if (empty($this->_data['welcome'])) {
        $this->_data['welcome'] = $this->_scopeConfig->getValue(
            'design/header/welcome',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
    return $this->_data['welcome'];
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.