Как получить значение из таблицы "основные данные конфигурации" в Magento 2
Magento 1.x используйте Mage::getStoreConfig('sections/groups/fields')
для получения данных в таблице core_config_data
.
Как Magento2 получить значение из таблицы core_config_data
?
6 answers
Нам нужно вызвать доступный метод по умолчанию.
Просто используйте \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
в аргументе конструктора и задайте свойство класса: $this->scopeConfig = $scopeConfig;
Теперь, чтобы получить значение конфигурации, просто используйте
$this->scopeConfig->getValue('dev/debug/template_hints',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE);
Я получил ответ от по этой ссылке и ссылаюсь на это
Создайте функцию для получения значений конфигурации в помощнике вашего пользовательского модуля.
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');
Я использовал следующий метод для извлечения переменных,
if (empty($this->_data['welcome'])) {
$this->_data['welcome'] = $this->_scopeConfig->getValue(
'design/header/welcome',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
}
return $this->_data['welcome'];
Скорее всего, в ваш класс уже введен Magento\Framework\App\Helper\Context
. Вы можете получить ScopeConfig
оттуда:
$this->context->getScopeConfig()->getValue(
'sections/groups/fields',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
Сначала вам нужно включить класс Magento\Store\Model\ScopeInterface
в свой конструктор:
protected $_scopeConfig;
public function __construct(
...
\Magento\Store\Model\ScopeInterface $scopeInterface,
...
)
{
...
$this->_scopeConfig = $scopeInterface;
...
}
Затем в методе вашего класса вы можете вызвать следующее:
$this->scopeConfig->getValue('path/of/config', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
В файлах шаблонов (phtml) я использую следующий способ:
$config = $block->getLayout()->createBlock(\Magento\Config\Block\System\Config\Form::class);
$configValue = $config->getConfigValue('web/secure/base_url');