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/。你在哪里调用这个代码?