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

时间:2012-07-20 14:52:23

标签: magento routing

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

<rewrite>
   <My_Module>
        <from><![CDATA[#^/computer/configuration/#]]></from>
        <to>/config/configuration/</to>
        <complete>1</complete>
    </My_Module>
</rewrite>

这样,每当我访问一个类似于 / computer / configuration / 的URL时,它都会路由到 / config / configuration / 。我想要的是在代码中改变这种行为。所以,在我的代码中,我是这样得到的:

$from = (string) Mage::getConfig()->getNode('global/rewrite/My_Module/from');

这是有效的,我得到的是#^ / computer / configuration /#。现在我尝试更改from:

$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未找到的页面。看来,我设定的价值并没有真正得到保存。我忘记了代码中的某些内容吗?

感谢您的帮助! :)

1 个答案:

答案 0 :(得分:0)

我相信配置需要在保存后重新初始化。试试这个:

Mage::app()->getConfig()->reinit();

......你可能还需要这个:

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