Cómo obtener valor de la tabla `core_config_data` en Magento 2

41

Magento 1.x utiliza Mage::getStoreConfig('sections/groups/fields')obtener datos en la core_config_datatabla.

¿Cómo obtener Magento2 valor de la core_config_datatabla?

Cuenta
fuente

Respuestas:

100

Necesitamos llamar al método predeterminado disponible.

Simplemente use \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, en su argumento de constructor y establezca la propiedad de clase:$this->scopeConfig = $scopeConfig;

Ahora para obtener el valor de configuración simplemente use

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

Tengo obtener la respuesta de este enlace y remito este

MeenakshiSundaram R
fuente
3
buena Meenakshi! sigue así
anshuman
¿Cómo los obtiene de un script separado, no desde el sistema de archivos magento o un módulo? Si crea una clase en su script y la instancia, ¿de qué debe heredar la clase y cómo se asegura de que cargue todos los archivos adecuados?
ahnbizcad
¿De qué alcance obtiene esto la configuración? ¿La vista de tienda actualmente vista por el cliente?
Erfan
sí, tomará la vista actual de la tienda del cliente
MeenakshiSundaram R
@MeenakshiSundaramR Estoy preguntando, aparte de esta publicación, cómo dar envío gratis para productos seleccionados usando sku. Ayúdame en magento.stackexchange.com/q/215022/57334
zus
4

Cree una función para obtener valores de configuración en el ayudante de su módulo personalizado.

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

y llame a cualquier lugar que desee, por ejemplo en test.phtml

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

En bloque y llamada de ayuda de esta manera:

 $this->_objectManager->create('Customvendorname\Custommodulename\Helper\Data')->getConfig('sectionid/groupid/fieldid');
Manish
fuente
77
Se recomienda en M2 preferir el enfoque DI. Por lo tanto, $this->_objectManager->create(...)debe evitarse el uso.
Anna Völkl
Gracias @ AnnaVölkl, entonces, ¿cuál es el reemplazo de eso? ¿Puedes publicar una respuesta similar aquí?
Manish
Vea la respuesta votada arriba.
Anna Völkl
3

He usado el siguiente método para recuperar las 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
fuente