当前位置: 首页>>技术教程>>正文


Magento2 – 如何从系统配置中获取数据

webfans 技术教程 , , 去评论

问题描述

通过system.xml添加的字段和使用config.xml填充的默认值,我们如何获取Magento2中的数据

最佳解决方法

在课堂上实施,

class Dummy 
{
   /**
   * @var \Magento\Framework\App\Config\ScopeConfigInterface
   */
   protected $scopeConfig;

   /**
   * Recipient email config path
   */
   const XML_PATH_EMAIL_RECIPIENT = 'contact/email/recipient_email';

   public function __construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig)
   {
      $this->scopeConfig = $scopeConfig;
   }

   /**
   * Sample function returning config value
   **/

  public function getReceipentEmail() {
     $storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;

     return $this->scopeConfig->getValue(self::XML_PATH_EMAIL_RECIPIENT, $storeScope);


     }
}

希望这有用!

次佳解决方法

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

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');

注意:在类构造函数上构造对象管理器或直接使用as

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$objectManager->create('Customvendorname\Custommodulename\Helper\Data')->getConfig('sectionid/groupid/fieldid');

第三种解决方法

我这样做了,我在Data.php文件中创建了一个辅助函数

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

然后我在phtml文件中调用了一行。

$required_loc = $this->helper('Namespace\Modulename\Helper\Data')->getConfig('sectionid/groupid/fieldid');

第四种方法

您可以使用以下代码从core_config表中获取值

编辑:

使用对象管理器创建ScopeConfigInterface类的实例

   $scopeConfig = $this->_objectManager->create('Magento\Framework\App\Config\ScopeConfigInterface');

然后通过使用scopeConfig对象获取配置值

    $configPath = $sectionId.'/'.$groupId.'/'.$fieldId;
    $value =  $scopeConfig->getValue(
        $configPath,
        \Magento\Store\Model\ScopeInterface::SCOPE_STORE
    );

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/3023.html,转载请务必附带本地址声明。