【问题标题】:Magento: Unable to override Sales RuleMagento:无法覆盖销售规则
【发布时间】:2011-12-03 01:55:03
【问题描述】:

我无法覆盖销售规则模型。我想重写类 Mage_SalesRule_Model_Rule

这是我的代码:-

<?xml version="1.0"?>
<config>
    <modules>
        <MyNamespace_MyModule>
            <version>0.1.0</version>
        </MyNamespace_MyModule>
    </modules>
    <global>
        <models>
            <salesrule>
                <rewrite>
                    <rule>MyNamespace_MyModule_Model_Rule</rule>
                </rewrite>
            </salesrule>
        </models>
    </global>
</config>

但这不起作用。

有什么帮助吗?

【问题讨论】:

  • 你能在你的完整配置文件的上下文中发布 XML sn-p 吗?最好的猜测是它在错误的位置。
  • @AlanStorm:我已经更新了 XML sn-p。希望现在很清楚。
  • 您似乎缺少外部 节点。
  • @AlanStorm:对不起。以前不是完整的 XML sn-p。现在,我已经更新了完整的 XML sn-p。你能再检查一下吗?
  • 配置看起来正确。是什么让您认为您没有成功创建重写?

标签: php magento overriding rewrite


【解决方案1】:

感谢大家帮助调试我的问题。

问题已经解决了。

我也在另一个本地模块 XML 文件中编写了覆盖代码。但是,我已经评论了该代码并且我的缓存被禁用。但是,我不知道它是如何引起问题的。因此,当我(从另一个模块)删除该注释代码时,我的问题就解决了,我能够覆盖 salesrule 模型。

如果其他人遇到此类问题,我想为他们写一些提示。这些提示基于此问题中的 cmets。

  • 重新检查您的 XML sn-p 是否在正确的位置。

  • 检查模块是否正在实例化(系统 -> 配置 -> 高级)。

  • 检查是否有其他模块也可能覆盖同一模型。尤其是那些在“本地”中的,因为它们优先。

  • 检查调用所需类时返回的类:

    echo get_class(Mage::getModel('salesrule/rule'));

谢谢大家的cmets。

【讨论】:

    猜你喜欢
    • 2011-03-13
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多