我试图在本地文件夹中覆盖本地文件夹中的模块,但我不知道它是否可能。这就是我所做的。
我已经创建了/local/Mycompany/Modulename/Model/Model.php,我想覆盖/local/Othercompany/Modulename/Model/Model.php
我的model.php是:
class Mycompany_Modulename_Model_Model extends Othercompany_Modulename_Model_Model
{ ... }
和我的config.xml
<global>
<models>
<othercompanymodulename>
<rewrite>
<model>Mycompany_Modulename_Model_Model</model>
</rewrite>
</othercompanymodulename>
</models>
该类已被实例化为Mage :: getModel(&#39; othercompanymodulename / model&#39;)
My Mycompany_Mymodule.xml
<config>
<modules>
<Mycompany_Modulename>
<active>true</active>
<codePool>local</codePool>
<depend>
<Othercompany_Modulename/>
</depend>
</Mycompany_Modulename>
</modules>
但我的模块被忽略了。是否可以在本地文件夹中覆盖位于本地文件夹中的类?我做错了什么?
答案 0 :(得分:5)
打开 [magento] \ app \ etc \ modules \ Mycompany_Modulename.xml
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Modulename>
<active>true</active>
<codePool>local</codePool>
<depends>
<Othercompany_Modulename/>
</depends>
</Mycompany_Modulename>
</modules>
</config>
以上代码强制Othercompany_Modulename
首先加载。
希望这能帮到你
答案 1 :(得分:1)
如果我没错,你在config.xml中覆盖模型的定义中错过了下划线:
<global>
<models>
<othercompany_modulename>
<rewrite>
<model>Mycompany_Modulename_Model_Model</model>
</rewrite>
</othercompany_modulename>
</models>
</global>
答案 2 :(得分:0)
这可能是一个延伸冲突。
如何检查和解决:
如何解决冲突? 您有3种解决冲突的选择:
了解详情: http://www.webshopapps.com/blog/2010/11/resolving-magento-extension-conflicts/ 相关: Magento - Model Override Not Working in local codePool