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.