为什么我的模型重写不运行?

时间:2013-12-03 18:11:36

标签: magento model rewrite

管理面板(或其他地方)中的某些配置是否可以阻止模型重写运行?

这是模块config.xml中的重写声明:

  <global>
    <models>
      <cataloginventory>
        <rewrite>
          <stock_item>My_Mod_CatalogInventory_Model_Stock_Item</stock_item>
        </rewrite>
      </cataloginventory>
    </models>
  </global>

模块 处于活动状态 - 这是肯定的,因为其他模块代码正在运行。

我从Mage_CatalogInventory_Model_Stock_Item覆盖了checkQuoteItemQty方法,但它是来自正在运行的父类的checkQuoteItemQty,不明白为什么......

    class My_Mod_CatalogInventory_Model_Stock_Item extends Mage_CatalogInventory_Model_Stock_Item
    {
        public function checkQuoteItemQty($qty, $summaryQty, $origQty = 0)
        {
           // this code is not running...
           exit('hello there');

1 个答案:

答案 0 :(得分:5)

第1步调试任何重写 - 尝试自己手动实例化类中的对象,并确保你的类是使用的类。

$object = Mage::getModel('cataloginventory/stock_item');
var_dump(get_class($object));

如果上述内容未输出My_Mod_CatalogInventory_Model_Stock_Item,请检查您的config.xml是否正确,Item.php文件是否在正确的文件夹中,最后跳转到{{3}并添加足够的调试代码以确定为什么 Magento没有看到你的重写。