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?

Thao Pham
la source

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

MeenakshiSundaram R
la source
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');
Manish
la source
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'];
mjdevloper
la source