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

jog*_*i99 1 rewrite model magento

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

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

  <global>
    <models>
      <cataloginventory>
        <rewrite>
          <stock_item>My_Mod_CatalogInventory_Model_Stock_Item</stock_item>
        </rewrite>
      </cataloginventory>
    </models>
  </global>
Run Code Online (Sandbox Code Playgroud)

该模块活跃的-因为其他模块代码运行,这是一定的。

我改写了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');
Run Code Online (Sandbox Code Playgroud)

Ala*_*orm 5

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

$object = Mage::getModel('cataloginventory/stock_item');
var_dump(get_class($object));
Run Code Online (Sandbox Code Playgroud)

如果上面的命令没有输出My_Mod_CatalogInventory_Model_Stock_Item,请检查config.xml您的Item.php文件是否正确,文件是否在正确的文件夹中,最后,跳到该getGroupedClassName方法并添加足够的调试代码以确定Magento 为什么看不到您的重写。