wut*_*aer 12 resources overriding magento
我试图覆盖
app\code\core\Mage\Customer\Model\Resource\Customer.php
Run Code Online (Sandbox Code Playgroud)
使用这个xml:
<models>
<customer_resource>
<rewrite>
<customer>My_Company_Model_Resource_Customer</customer>
</rewrite>
</customer_resource>
</models>
Run Code Online (Sandbox Code Playgroud)
但我明白了
Mage registry key "_resource_singleton/customer/customer" already exists
Run Code Online (Sandbox Code Playgroud)
与
<customer>
<rewrite>
<customer_resource>My_Company_Model_Resource_Customer</customer_resource>
</rewrite>
</customer>
Run Code Online (Sandbox Code Playgroud)
要么
<models>
<customer>
<rewrite>
<resource_customer>My_Company_Model_Resource_Customer</resource_customer>
</rewrite>
</customer>
</models>
Run Code Online (Sandbox Code Playgroud)
什么都没发生
Ian*_*Ian 30
您应该能够使用您拥有的代码完成它.如果没有被覆盖,请尝试一些基础知识,例如确保已清除缓存.如果仍然无效,您可能正在与另一个已经覆盖它的模块进行斗争.在这种情况下,您需要找出确定哪一个获胜的后续步骤:合并逻辑,重写/扩展另一个,等等.
<models>
<customer_resource>
<rewrite>
<customer>My_Company_Model_Resource_Customer</customer>
</rewrite>
</customer_resource>
</models>
Run Code Online (Sandbox Code Playgroud)
小智 5
我用以下xml做了(在1.7.0.2中):
<?xml version="1.0" encoding="UTF-8" ?>
<config>
<modules>
<Final_Dummy>
<version>0.0.1</version>
</Final_Dummy>
</modules>
<frontend>
<routers>
<dummy>
<use>standard</use>
<args>
<module>Final_Dummy</module>
<frontName>dummy</frontName>
</args>
</dummy>
</routers>
</frontend>
<global>
<helpers>
<dummy>
<class>Final_Dummy_Helper</class>
</dummy>
</helpers>
<models>
<dummy>
<class>Final_Dummy_Model</class>
<resourceModel>dummy_resource</resourceModel>
</dummy>
<dummy_rsource>
<class>Final_Dummy_Model_Resource</class>
<deprecatedNode>dummy_mysql4</deprecatedNode>
</dummy_rsource>
<customer_resource>
<rewrite>
<customer>Final_Dummy_Model_Resource_Customer</customer>
</rewrite>
</customer_resource>
</models>
</global>
</config>
Run Code Online (Sandbox Code Playgroud)
为了确保它真的有效,我创建了以下类:
<?php
class Final_Dummy_Model_Resource_Customer extends Mage_Customer_Model_Resource_Customer{
public function amIHere(){
return 'Yes sir';
}
}
?>
Run Code Online (Sandbox Code Playgroud)
并像这样调用模块控制器中的资源
<?php
class Final_Dummy_IndexController extends Mage_Core_Controller_Front_Action{
public function indexAction(){
$res=Mage::getResourceModel('customer/customer');
die($res->amIHere());
}
}
?>
Run Code Online (Sandbox Code Playgroud)
结果是:
是的先生
我希望这些代码能以某种方式帮助您.记得清除缓存,我建议在开发阶段禁用Magento编译器.
| 归档时间: |
|
| 查看次数: |
16709 次 |
| 最近记录: |