如何在不同命名空间中具有相同名称的两个模块时解决前端路由器冲突

时间:2014-06-08 10:18:52

标签: magento

我对这个问题有同样的情况(same module name with different namespace conflicting in magento

但我的问题是如何解决前控制器冲突。我不想重写其他模块但仍希望保留相同的模块名称。

ie:模块名称是moduleabc,因此url将是

moduleabc /控制器/动作/

    <routers>
        <moduleabc>
            <use>standard</use>
            <args>
                <module>A_moduleabc</module>
                <frontName>moduleabc</frontName>
            </args>
        </moduleabc>
     </routers>

我尝试编辑config.xml,如下所示

    <routers>
        <moduleabc>
            <use>standard</use>
            <args>
                <module>B_moduleabc</module>
                <frontName>moduleabc</frontName>
            </args>
        </moduleabc>
     </routers>

我发现当magento试图为adminhtml实例化源模型时,即

moduleabc / source_trans

将被解析为

A_Moduleabc_Source_Trans类

两者的CONFIG.XML:

<global>
    <models>
        <moduleabc>
            <class>A_Moduleabc_Model</class>
            <resourceModel>Moduleabc_mysql4</resourceModel>
        </moduleabc>

<global>
    <models>
        <moduleabc>
            <class>B_Moduleabc_Model</class>
            <resourceModel>Moduleabc_mysql4</resourceModel>
        </moduleabc>

1 个答案:

答案 0 :(得分:0)

您可以使用其他名称更改<frontName>moduleabc</frontName>,在前端可以使用新的名称访问您的模块。感谢