So erhalten Sie einen Wert aus der Tabelle "core_config_data" in Magento 2


41

Magento 1.x verwenden, Mage::getStoreConfig('sections/groups/fields')um Daten auf den core_config_dataTisch zu bekommen.

Wie Magento2 Wert aus der core_config_dataTabelle bekommen?

Antworten:


100

Wir müssen die verfügbare Standardmethode aufrufen.

Verwenden Sie \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfigin Ihrem Konstruktorargument einfach , und legen Sie die Klasseneigenschaft fest:$this->scopeConfig = $scopeConfig;

Verwenden Sie zum Abrufen des Konfigurationswerts einfach

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

Ich habe die Antwort von diesem Link erhalten und verweise darauf


3
guter Meenakshi!
Weiter

Wie erhält man sie aus einem separaten Skript, nicht aus dem Magento-Dateisystem oder einem Modul? Wenn Sie eine Klasse in Ihrem Skript erstellen und instanziieren, von was soll die Klasse erben und wie stellen Sie sicher, dass alle richtigen Dateien geladen werden?
Ahnbizcad

Aus welchem ​​Bereich stammt die Konfiguration? Die aktuell angesehene Storeview des Kunden?
Erfan

Ja, es dauert aktuelle Storeview des Kunden
MeenakshiSundaram R

@MeenakshiSundaramR ich abgesehen von diesem Posten bin zu fragen, wie freies Verschiffen für ausgewählte Produkte mit sku.Help mir geben magento.stackexchange.com/q/215022/57334
zus

4

Erstellen Sie eine Funktion zum Abrufen von Konfigurationswerten im Hilfsprogramm Ihres benutzerdefinierten Moduls.

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

und rufen Sie zum Beispiel in test.phtml an einer beliebigen Stelle auf

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

In Block und Helfer wie folgt aufrufen:

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

7
Es wird empfohlen, in M2 den DI-Ansatz zu bevorzugen. Daher $this->_objectManager->create(...)sollte die Verwendung vermieden werden.
Anna Völkl

Danke @ AnnaVölkl, was ist dann der Ersatz dafür? Kannst du hier eine ähnliche Antwort posten?
Manish

Siehe die oben angegebene Antwort.
Anna Völkl

3

Ich habe folgende Methode verwendet, um die Variablen abzurufen

if (empty($this->_data['welcome'])) {
        $this->_data['welcome'] = $this->_scopeConfig->getValue(
            'design/header/welcome',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
    return $this->_data['welcome'];
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.