什么是getConfigData?

San*_*raj 0 magento

什么是getConfigData?和Magento中的getConfigData和getStoreConfigData之间的差异.

$this->getConfigData('shippingspecificcountry', $store_id);
Run Code Online (Sandbox Code Playgroud)

我尝试使用我当前的商店ID和0,两者都给出了空数组.

任何人都可以解释上述方法.

Ala*_*orm 5

你的问题可以使用更多的背景 - 缺乏这一点.

Mage::getStoreConfig方法是全局Mage类的静态方法,并提供对Magento配置树中存储的配置值的访问.Magento的配置树是由

  1. 加载所有XML文件 app/etc/*.xml
  2. 从`app/etc/modules/*.xml'加载所有XML文件
  3. 合并config.xml活动模块中的所有文件
  4. 合并设置的任何值core_config_data(通过System -> Configuration管理员)

由于Magento的配置非常庞大,因此许多模块开发人员都会添加类似getConfigDatagetConfig方便的方法来获取特定的配置值.例如,请考虑这个过于简单的示例

Mage::getStoreConfig('foo/baz/bar')
Run Code Online (Sandbox Code Playgroud)

$this->getConfig('bar');

....
public function getConfigData($key)
{
    return Mage::getStoreConfig('foo/baz/' . $bar);
}
Run Code Online (Sandbox Code Playgroud)

第二个允许客户端程序员更简洁的代码.

您可以在Magento的各种运输公司的基类中看到这样的示例

public function getConfigData($field)
{
    if (empty($this->_code)) {
        return false;
    }
    $path = 'carriers/'.$this->_code.'/'.$field;
    return Mage::getStoreConfig($path, $this->getStore());
}
Run Code Online (Sandbox Code Playgroud)

这里,该getConfigData方法将自动在carriers节点中查找配置密钥- 使用运营商_code作为子节点,并检查实例化的运营商对象以获取商店代码.

getConfigData根据您正在使用的类/对象,该方法的行为会有所不同,但希望这足以让您指向正确的方向.