【问题标题】:Magento Model Override in a custom module自定义模块中的 Magento 模型覆盖
【发布时间】:2016-01-16 04:39:54
【问题描述】:

我开始使用 Magento (1.9) CE。我正在尝试编写一个小模块来修改两个模型的行为:

  1. Mage_Sales_Model_Quote
  2. Mage_Sales_Model_Quote_Address

我创建了 MyCompany_Sales_Model_Quote 和 MyCompany_Sales_Model_Quote_Address 类来扩展这些类。

我的文件夹结构是这样的

MyCompany
 -> etc
   -> config.xml
 ->Sales
  -> Model
    -> Quote.php
    -> Quote
       -> Address.php

我已验证:

  1. 我的模块 - MyCompany_Sales - 显示在管理门户中(管理->系统->配置->高级->高级)

  2. 如果我不编写自定义模块,而只是从 Magento 核心复制这些文件并在 Local->Mage->Sales->Model 下复制,则更改似乎有效。但我想保留一个模块来只改变我想要的行为。

我必须得出结论,主要问题是系统没有正确选择我的新课程。这是我的配置 xml 来覆盖这些类:

< ?xml version="1.0"?>
<config>
    <modules>
        <MyCompany_Sales>
            <version>0.1.0</version>
        </MyCompany_Sales>
    </modules>
    <global>
       <models>
          <sales>
              <rewrite>
                  <quote>MyCompany_Sales_Model_Quote</quote>
                  <quote_address>MyCompany_Sales_Model_Quote_Address</quote_address>
              </rewrite>
          </sales>
       </models>
    </global>
</config>

任何关于我可能做错了什么的指针将不胜感激。

【问题讨论】:

    标签: magento


    【解决方案1】:

    我认为您的目录结构有问题。您的目录结构应如下所示:

    MyCompany (Namespace)
        -Sales (Modulename)
            - etc (Directory)
                -config.xml (Configuration File)
            - Model(Directory)
                -Quote.php(File)
                -Quote(Directory)
                    -Address.php(File)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 2014-05-21
      相关资源
      最近更新 更多