System.xml中文本字段的Magento2 setValue()

时间:2018-07-31 15:14:37

标签: php magento magento2

我已经为我的Magento2模块创建了一个配置屏幕,在此文件(System.xml)上,我有一个输入文本字段,如下所示:

<field id="postback_url" type="text"...>
     <backend_model>Vendorname\Modulename\Model\Config\Source\Configs<backend_model>
</field>

我需要插入一个默认值。此值将为BaseUrl + / some-endpoint

如何在文本字段中插入默认值? 我不太确定如何在Magento2.x中完成它 在magento 1.x中,我使用了以下方法:

class myClassName extends Mage_Core_Model_Config_Data{
    protected function _afterLoad(){
       $this->setValue("my URL goes here");
    }

但是显然,它在Magento 2.x上不起作用

提前谢谢!

2 个答案:

答案 0 :(得分:0)

在您的模块etc文件夹中创建一个config.xml文件:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
    <default>
        <yoursectionid>
            <yourgroupid>
                <yourfieldid>somevalue</yourfieldid>
            </yourgroupid>
        </yoursectionid>
    </default>
</config>

答案 1 :(得分:0)

例如,要在注释和/ comment中获取动态值,则应在模型类中使用Namespace \ ModuleName \ Model \ Config \ Source \ ConfigComment之类的东西,然后在Namespace \ ModuleName类中使用\ Model \ Config \ Source \ ConfigComment.php

class ConfigComment implements \Magento\Config\Model\Config\CommentInterface
{

  public function __construct(
    \Magento\Framework\View\Element\Template\Context $context,
    \Magento\Store\Model\StoreManagerInterface $storeManager
) {
      $this->_storeManager = $storeManager;
  }


  public function getCommentText($elementValue)
  {
     $baseurl = $this->_storeManager->getStore()->getBaseUrl();
     return $baseurl;
  }
}