如何从Magento 2的`core_config_data`表中获取值


41

Magento 1.x使用Mage::getStoreConfig('sections/groups/fields')获取core_config_data表上的数据。

Magento2如何从core_config_data表中获取价值?

Answers:


100

我们需要调用可用的默认方法。

\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig在您的构造函数参数中使用Use ,并设置class属性:$this->scopeConfig = $scopeConfig;

现在要获取配置值,只需使用

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

我已经从这个链接得到答案,并参考这个


3
好一个Meenakshi!保持
现状

您如何从单独的脚本而不是从magento文件系统或模块中获取它们?如果您在脚本中创建一个类并实例化它,则该类应从中继承什么,以及如何确保它加载所有正确的文件?
ahnbizcad

这是从哪个范围获得配置的?客户当前查看的商店视图?
Erfan

是的,它将采用客户当前的店铺视图
MeenakshiSundaram R

@MeenakshiSundaramR除了这个帖子,我想问的是如何使用sku免费送货所选产品。请访问 magento.stackexchange.com/q/215022/57334
zus

4

创建一个用于在自定义模块的帮助器中获取配置值的函数。

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

并在您想要的任何地方打电话,例如在test.phtml中

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

在这样的块和帮助程序调用中:

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

7
在M2中推荐使用DI方法。因此,$this->_objectManager->create(...)应避免使用。
AnnaVölkl16年

感谢@AnnaVölkl,那么该替换的是什么?您可以在此处发布类似的答案吗?
Manish

请参阅上面的投票答案。
AnnaVölkl16年

3

我已经使用以下方法来检索变量

if (empty($this->_data['welcome'])) {
        $this->_data['welcome'] = $this->_scopeConfig->getValue(
            'design/header/welcome',
            \Magento\Store\Model\ScopeInterface::SCOPE_STORE
        );
    }
    return $this->_data['welcome'];
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.