Magento:从代码中设置配置xml数据中的节点?

Magento:从代码中设置配置xml数据中的节点?,magento,routing,Magento,Routing,我配置了一个路由器,如下所示: <rewrite> <My_Module> <from><![CDATA[#^/computer/configuration/#]]></from> <to>/config/configuration/</to> <complete>1</complete> </My_Module>

我配置了一个路由器,如下所示:

<rewrite>
   <My_Module>
        <from><![CDATA[#^/computer/configuration/#]]></from>
        <to>/config/configuration/</to>
        <complete>1</complete>
    </My_Module>
</rewrite>
$from = (string) Mage::getConfig()->getNode('global/rewrite/My_Module/from');
这是可行的,我得到的是#^/computer/configuration/#。现在,我尝试更改以下内容:

$from = '#^/somethingelse/configuration/#';
Mage::getConfig()->setNode('global/rewrite/My_Module/from', $from);
Mage::getConfig()->saveConfig();

// This returns me the new value (#^/somethingelse/configuration/#)
$from = (string) Mage::getConfig()->getNode('global/rewrite/My_Module/from');
但是路由不起作用,它给了我404找不到的页面。看起来,我设置的值并没有真正保存。我在代码中忘记了什么吗


谢谢你的帮助!:)

我认为保存后需要重新初始化配置。试试这个:

Mage::app()->getConfig()->reinit();
…您可能还需要:

Mage::app()->reinitStores();

我认为在保存配置后需要重新初始化它。试试这个:

Mage::app()->getConfig()->reinit();
…您可能还需要:

Mage::app()->reinitStores();

saveConfig的签名是
函数saveConfig($path,$value,$scope='default',$scopeId=0)
。尝试
Mage::getConfig()->saveConfig('global/rewrite/My_Module/from',$from)对,我试过:
Mage::getConfig()->saveConfig('global/rewrite/My_Module/from',$from)这也不起作用。之后,我在match函数及其still/computer/configuration/中的Mage\u Cms\u Controller\u Router中再次获得值。您在哪里调用此代码?saveConfig的签名是
function saveConfig($path,$value,$scope='default',$scopeId=0)
。尝试
Mage::getConfig()->saveConfig('global/rewrite/My_Module/from',$from)对,我试过:
Mage::getConfig()->saveConfig('global/rewrite/My_Module/from',$from)这也不起作用。在那之后,我在match函数的Mage_Cms_Controller_Router中再次得到值,它的still/computer/configuration/。你在哪里调用这个代码?