Comment obtenir de la valeur de la table `core_config_data` dans Magento 2


42

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

Comment Magento2 obtient-il de la valeur de core_config_datatable?

Réponses:


101

Nous devons appeler la méthode par défaut disponible.

Il suffit d'utiliser \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, dans votre argument constructeur et définir la propriété de classe:$this->scopeConfig = $scopeConfig;

Maintenant, pour obtenir la valeur de configuration, utilisez simplement

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

J'ai eu la réponse de ce lien et référez - vous ceci


3
bon un Meenakshi! continuez comme ça
anshuman

Comment les obtenez-vous depuis un script séparé, pas depuis le système de fichiers magento ou un module? Si vous créez et instanciez une classe dans votre script, de quoi la classe devrait-elle hériter et comment vous assurez-vous qu'elle charge tous les fichiers appropriés?
ahnbizcad

Quelle est la portée de cette configuration? Le magasin visualisé actuellement par le client?
Erfan

oui, il va falloir que le client ait pris connaissance de la vue actuelle
MeenakshiSundaram R

@MeenakshiSundaramR Je demande en dehors de ce poste, comment donner la livraison gratuite pour les produits sélectionnés à l' aide sku.Help moi à magento.stackexchange.com/q/215022/57334
zus

4

Créez une fonction pour obtenir les valeurs de configuration dans l'aide de votre module personnalisé.

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

et appelez où vous voulez, par exemple dans test.phtml

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

En bloc et appelant comme ceci:

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

7
Il est recommandé en M2 de préférer l'approche DI. Ainsi, l'utilisation $this->_objectManager->create(...)devrait être évitée.
Anna Völkl

Merci @ AnnaVölkl, alors quel est le remplacement de cela s'il vous plaît pouvez-vous poster une réponse similaire ici?
Manish

Voir la réponse votée ci-dessus.
Anna Völkl

3

J'ai utilisé la méthode suivante pour récupérer les variables

if (empty($this->_data['welcome'])) {
        $this->_data['welcome'] = $this->_scopeConfig->getValue(
            'design/header/welcome',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
    return $this->_data['welcome'];
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.