Как получить значение из таблицы `core_config_data` в Magento 2


42

Magento 1.x использовать для Mage::getStoreConfig('sections/groups/fields')получения данных по core_config_dataтаблице.

Как Magento2 получить значение из core_config_dataтаблицы?

Ответы:


101

Нам нужно вызвать доступный метод по умолчанию.

Просто используйте \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, в аргументе конструктора и установите свойство класса:$this->scopeConfig = $scopeConfig;

Теперь, чтобы получить значение конфигурации, просто используйте

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

Я получил ответ по этой ссылке и отослать это


3
добрый Минакши! так держать
anshuman

Как вы получаете их из отдельного скрипта, а не из файловой системы magento или из модуля? Если вы создадите класс в своем скрипте и создадите его экземпляр, от чего должен наследоваться этот класс, и как вы гарантируете, что он загружает все нужные файлы?
Анбизкад

Из какой области это получает конфигурацию? Просматривается ли в данный момент магазин покупателем?
Эрфан

да, это займет текущее состояние магазина покупателя
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ölkl, тогда какая замена, пожалуйста, вы можете опубликовать подобный ответ здесь?
Маниш

Смотрите ответ выше.
Анна Фёлькл

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'];
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.