0

我重写了 Mage_Catalog_Model_Resource_Product 并将方法 _saveCategories 添加到我的类 MyCompany_Catalog_Model_Resource_Product。

这是我的代码:

$p = Mage::getModel('catalog/product')->load(32);
$p->setCategoryIds(array('0'=>14));
$p->save();

产品保存后,我希望 Magento 从 MyCompany_Catalog_Model_Resource_Product 调用 _saveCategories 方法,但它没有,它从 Mage_Catalog_Model_Resource_Product 调用 _saveCategories 方法。

有人可以告诉我为什么会这样吗?

我认为类被正确重写,echo get_class(Mage::getModel('catalog/resource_product'));显示MyCompany_Catalog_Model_Resource_Product

4

1 回答 1

0

我在 config.xml 中犯了错误,我忽略了覆盖资源与覆盖模块不同的事实:

我在 config.xml 中有这段代码

    <catalog>
      <rewrite>resource_product>MyCompany_Catalog_Model_Catalog_Resource_Product</resource_product></rewrite>
   </catalog>

将其更改为:

        <catalog_resource>
                <rewrite>
                   <product>MyCompany_Catalog_Model_Resource_Product</product>
                </rewrite>
         </catalog_resource>

它有效。

于 2013-07-03T09:57:18.263 回答