【发布时间】:2011-06-26 12:35:12
【问题描述】:
请一位magento专家帮我解决这个问题。这让我整天发疯!!!
我试图覆盖 Mage_Catalog_Model_Product_Type_Price 并且我尝试的任何东西都不起作用。我以前做过几次这样的事情,并且确信我的代码是正确的,但我显然遗漏了一些东西。
控制器工作正常,如果我实例化模型,它也工作正常。它似乎是实际的重写本身不起作用。
我正在使用 Magento 1.5.1。
这是我的模块配置文件中的代码:
<?xml version="1.0" encoding="utf-8"?>
<config>
<modules>
<MyNs_MyMod>
<version>0.1.0</version>
</MyNs_MyMod>
</modules>
<global>
<models>
<catalog>
<rewrite>
<product_type_price>MyNs_MyMod_Model_Price</product_type_price>
</rewrite>
</catalog>
</models>
</global>
<frontend>
<routers>
<mymod>
<use>standard</use>
<args>
<module>MyNs_MyMod</module>
<frontName>mymod</frontName>
</args>
</mymod>
</routers>
</frontend>
</config>
这是精简到最低限度的型号代码:
<?php
class MyNs_MyMod_Model_Price extends Mage_Catalog_Model_Product_Type_Price
{
public function getPrice($product = null) {
Mage::log('Made it into getPrice()');
return 0;
}
}
【问题讨论】:
-
实例化 Mage::getModel('catalog/product_type_price') 会发生什么?你拿回一个对象吗?如果有,它的类别是什么?
-
嗨艾伦。我得到了正确的覆盖类型,即 MyNs_Mymod_Model_Price。但是,如果我从核心模型 Mage_Catalog_Product_Type_Price 添加日志条目,这些总是会被记录 - 来自被覆盖类的日志消息永远不会被记录。
-
提供更多关于您正在加载哪些页面以及您在何处添加所看到的日志的上下文将帮助人们追踪您的问题。 Magento 足够新且可无限配置,因此追踪此类问题的最快方法是查看负责实例化模型的代码,并找出为什么它没有返回您认为应该返回的内容。您提供的 me 上下文越多,可以提供帮助的人就越多。
-
另外,在下面提供的黑暗答案中刺伤
标签: magento