Como obter valor da tabela `core_config_data` no Magento 2


41

Magento 1.x usa Mage::getStoreConfig('sections/groups/fields')obter dados na core_config_datatabela.

Como Magento2 obter valor da core_config_datatabela?

Respostas:


100

Precisamos chamar o método padrão disponível.

Basta usar \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, no argumento do construtor e defina a propriedade da classe:$this->scopeConfig = $scopeConfig;

Agora, para obter o valor da configuração, basta usar

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

Eu recebo a resposta deste link e refiro isso


3
bom Meenakshi! continue assim
anshuman

Como você os obtém de um script separado, não de dentro do sistema de arquivos magento ou de um módulo? Se você cria uma classe em seu script e a instancia, do que a classe deve herdar e como garantir que ela carrega todos os arquivos adequados?
ahnbizcad

De qual escopo isso obtém a configuração? A visualização de armazenamento atualmente visualizada pelo cliente?
Erfan

Sim, levará a visualização de armazenamento atual do cliente
MeenakshiSundaram R

@MeenakshiSundaramR eu estou pedindo para além deste post, como dar frete grátis para produtos selecionados usando sku.Help me em magento.stackexchange.com/q/215022/57334
ZUS

4

Crie uma função para obter valores de configuração no auxiliar do seu módulo personalizado.

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

e ligue para onde quiser, por exemplo, em test.phtml

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

Em chamada em bloco e auxiliar, assim:

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

7
Recomenda-se no M2 que prefira o método DI. Assim, o uso $this->_objectManager->create(...)deve ser evitado.
Anna Völkl

Obrigado @ AnnaVölkl, então qual é a substituição disso, por favor, você pode postar uma resposta semelhante aqui?
Manish

Veja a resposta votada acima.
Anna Völkl

3

Eu usei o seguinte método para recuperar as variáveis

if (empty($this->_data['welcome'])) {
        $this->_data['welcome'] = $this->_scopeConfig->getValue(
            'design/header/welcome',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
    return $this->_data['welcome'];
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.