我试图重新声明一个核心模块模型类(Mage_Catalog_Model_Product)。我创建了一个测试模块,并将其命名为First_Module,我还在其中创建了一个config.xml文件:
<?xml version="1.0"?>
<config>
<default>
<models>
<catalog>
<rewrite>
<product>First_Module_Model_Product</product>
</rewrite>
</catalog>
</models>
</default>
</config>
然后我创建了app/code/local/First/Module/Model/Product.php,并在其中声明了一个类:类First_Module_Model_Product扩展Mage_Catalog_Model_Product.
链接到目录结构的图像:http://i58.tinypic.com/abqetz.png
我还在app/etc/modules中创建了First_Module.xml文件:
<?xml version="1.0"?>
<config>
<modules>
<First_Module>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Catalog/>
</depends>
</First_Module>
</modules>
</config>
然后我试着运行测试,但它不工作:
Zend_Debug::dump( Mage::getStoreConfig('global/models/catalog') ) ->
array(1) {
["rewrite"] => array(1) {
["product"] => string(26) "First_Module_Model_Product"
}
}
$model = Mage::getModel('catalog/product');
Zend_Debug::dump(get_class($model)); // prints Mage_Catalog_Model_Product, but I wont to see First_Module_Model_Product.
我错在哪里?
在<global>
标签中添加您的模型重写信息而不是<default>
标签
<global>
<models>
<catalog>
<rewrite>
<product>First_Module_Model_Product</product>
</rewrite>
</catalog>
</models>
</global>