Mage注册表项“_singleton / Observer”已经存在

时间:2014-12-10 09:30:14

标签: magento

在管理员创建新订单时获取错误Mage registry key "_singleton/Mynamepsace_Dealers_Model_Observer" already exists。在我的config.xml中,我没有发现任何错误。我检查了很多关于这个问题的帖子,但没有跟踪解决方案。这是我的config.xml -

<config>
    <modules>
        <Mynamespace_Dealers>
            <version>1.4.0</version>
        </Mynamespace_Dealers>
    </modules>
    <frontend>
        <routers>
            <dealers>
                <use>standard</use>
                <args>
                    <module>Mynamespace_Dealers</module>
                    <frontName>dealers</frontName>
                </args>
            </dealers>
        </routers>
        <layout>
            <updates>
                <dealers>
                    <file>dealers.xml</file>
                </dealers>
            </updates>
        </layout>
    </frontend>
    <admin>
        <routers>
            <dealers>
                <use>admin</use>
                <args>
                    <module>Mynamespace_Dealers</module>
                    <frontName>dealers</frontName>
                </args>
            </dealers>
        </routers>
    </admin>
    <adminhtml>
         <events>
            <sales_order_save_before>
                <observers>
                    <dealers_order_save_before>
                        <class>Mynamepsace_Dealers_Model_Observer</class>
                        <method>orderSaveBefore</method>
                    </dealers_order_save_before>
                </observers>
            </sales_order_save_before>
        </events>
        <menu>
            <dealers module="dealers">
                <title>Dealers</title>
                <sort_order>71</sort_order>
                <children>
                    <items module="dealers">
                        <title>Manage Dealers</title>
                        <sort_order>0</sort_order>
                        <action>dealers/adminhtml_dealers</action>
                    </items>
                </children>
            </dealers>
        </menu>
        <acl>
            <resources>
                <admin>
                    <children>
                        <system>
                            <children>
                                <config>
                                    <children>
                                        <dealers translate="title" module="dealers">
                                            <title>Dealers Section</title>
                                            <sort_order>50</sort_order>
                                        </dealers>
                                    </children>
                                </config>
                            </children>
                        </system>
                    </children>
                </admin>
            </resources>
        </acl>
        <layout>
            <updates>
                <dealers>
                    <file>dealers.xml</file>
                </dealers>
            </updates>
        </layout>
    </adminhtml>
    <global>
        <models>
            <dealers>
                <class>Mynamespace_Dealers_Model</class>
                <resourceModel>dealers_mysql4</resourceModel>
            </dealers>
            <dealers_mysql4>
                <class>Mynamespace_Dealers_Model_Mysql4</class>
                <entities>
                    <order><table>sales_order</table></order>
                </entities>
            </dealers_mysql4>
        </models>
        <resources>
            <dealers_setup>
                <setup>
                    <module>Mynamespace_Dealers</module>
                    <class>Mage_Sales_Model_Mysql4_Setup</class>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </dealers_setup>
            <dealers_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </dealers_write>
            <dealers_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </dealers_read>
        </resources>
        <blocks>
            <dealers>
                <class>Mynamespace_Dealers_Block</class>
            </dealers>
        </blocks>
        <helpers>
            <dealers>
                <class>Mynamespace_Dealers_Helper</class>
            </dealers>
        </helpers>
    </global>
</config>

这是我的观察员班 -

<?php

class Mynamepsace_Dealers_Model_Observer
{
    public function orderSaveBefore()
    {
        echo "I am here"; exit;
        $order = $observer->getEvent()->getOrder();
    }
}

1 个答案:

答案 0 :(得分:2)

替换此代码:

<events>
        <sales_order_save_before>
            <observers>
                <dealers_order_save_before>
                    <class>Mynamepsace_Dealers_Model_Observer</class>
                    <method>orderSaveBefore</method>
                </dealers_order_save_before>
            </observers>
        </sales_order_save_before>
  </events>

<events>
        <sales_order_save_before>
            <observers>
                <dealers_order_save_before>
                    <type>singleton</type>
                    <class>Mynamepsace_Dealers_Model_Observer</class>
                    <method>orderSaveBefore</method>
                </dealers_order_save_before>
            </observers>
        </sales_order_save_before>
</events>

在config.xml中

请注意,<dealers_order_save_before>这应该是唯一的。检查您是否在同一应用程序中的其他模块中的任何位置使用过它。

干杯: - )