Як отримати значення з таблиці `core_config_data` в Magento 2


41

Magento 1.x використання Mage::getStoreConfig('sections/groups/fields')отримує дані на core_config_dataтабл.

Як Magento2 отримати значення з core_config_dataтаблиці?

Відповіді:


100

Нам потрібно зателефонувати за доступним методом за замовчуванням.

Просто використовуйте \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 чи модуля? Якщо ви створюєте клас у своєму скрипті та інстанціюєте його, від чого повинен успадкувати клас, і як ви гарантуєте, що він завантажує всі належні файли?
ahnbizcad

З якої області отримує цю конфігурацію? Зараз переглядається клієнтом перегляд магазину?
Ерфан

так, це займе поточний перегляд клієнта у магазині
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.