法师注册表项“ _singleton / weee / observer”已存在


13

当我尝试添加或编辑产品时,出现以下错误:

Mage registry key "_singleton/weee/observer" already exists
Trace:
#0 app/Mage.php(222): Mage::throwException('Mage registry k...')
#1 app/Mage.php(476): Mage::register('_singleton/weee...', false)
#2 app/code/core/Mage/Core/Model/App.php(1316): Mage::getSingleton('weee/observer')
#3 app/Mage.php(447): Mage_Core_Model_App->dispatchEvent('adminhtml_catal...', Array)
#4 app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php(143): Mage::dispatchEvent('adminhtml_catal...', Array)
#5 app/code/core/Mage/Adminhtml/Block/Widget/Form.php(144): Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Attributes->_prepareForm()
#6 app/code/core/Mage/Core/Block/Abstract.php(862): Mage_Adminhtml_Block_Widget_Form->_beforeToHtml()
#7 app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tabs.php(79): Mage_Core_Block_Abstract->toHtml()
#8 app/code/core/Mage/Core/Block/Abstract.php(238): Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs->_prepareLayout()
#9 app/code/core/Mage/Core/Model/Layout.php(456): Mage_Core_Block_Abstract->setLayout(Object(Mage_Core_Model_Layout))
#10 app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('adminhtml/catal...', 'product_tabs')
#11 app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('adminhtml/catal...', 'product_tabs')
#12 app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#13 app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#14 app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#15 app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#16 app/code/core/Mage/Adminhtml/Controller/Action.php(275): Mage_Core_Controller_Varien_Action->loadLayout(Array, true, true)
#17 app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php(207): Mage_Adminhtml_Controller_Action->loadLayout(Array)
#18 app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Adminhtml_Catalog_ProductController->newAction()
#19 app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('new')
#20 app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#21 app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#22 app/Mage.php(683): Mage_Core_Model_App->run(Array)
#23 index.php(124): Mage::run('catalog', 'website')
#24 {main}

Magento版本 1.7.0.0编译器已关闭清除缓存已重建索引没有更新或新扩展名的安装,它只是退出了工作

任何帮助,将不胜感激!


1
据我了解,这是由缓存引起的,您确定清除了吗?您是如何清除的?
彼得·奥卡拉汉

我在“系统-刷新Magento缓存”和“刷新缓存存储”下使用了“缓存管理”。有没有办法检查缓存是否已刷新?
littleredsunshine 2015年

假设您使用的是基于文件的缓存,请检查var/cache目录中是否有内容,如果有,则删除文件夹中的所有内容。
彼得·奥卡拉汉

尝试过,仍然会出错。在屏幕的顶部,还引用了Linux站点名称3.8.0-41-generic#60〜precise1-Ubuntu SMP Fri May 16 00:18:00 UTC 2014 x86_64,谢谢您的快速解答和帮助!
littleredsunshine 2015年

Answers:


16

由于注册表中的值为空,因此出现此错误。

为了防止这种情况,您需要禁用“编译”模式,如果要使用它,请重新运行它。

php -f shell/compiler.php disable
php -f shell/compiler.php clear
php -f shell/compiler.php compile

尝试清除并禁用编译器,但仍然出现错误。任何其他想法将不胜感激。
littleredsunshine 2015年

运行编译工作!!!
MageDev 2015年

阿比舍克,你是我的英雄!这篇文章解决了一个我花了几个小时而又出现了与上述帖子类似的错误的问题。从管理面板进行编译会导致错误。但是从命令行运行效果很好:)
MagentoMac

4

检查模块中的事件观察器xml代码config.xml是否正确。

应该是这样的:

<events>
    <event_name_that_you_are_working_on>
        <observers>
            <some_unique_identifier>
                <type>singleton</type>
                <class>YourNamespace_YourModule_Model_Observer</class>
                <method>functionNameInYourObserver</method>
            </some_unique_identifier>
        </observers>
    </event_name_that_you_are_working_on>
</events>

我曾经遇到这种错误,因为我modulename/observer在类节点内部使用。使用完整的类名(YourNamespace_YourModule_Model_Observer)为我解决了该错误。

在模块的事件观察器xml代码中,您可能会使用class如下所示的代码:

<class>yourmodule/observer</class>

尝试改用此方法(如上述event-observer xml代码中所述):

<class>YourNamespace_YourModule_Model_Observer</class>

1
  1. app\etc\moduels目录禁用扩展名。
  2. 清除缓存并
  3. 运行编译。

现在,它将正常工作。


0

首先禁用编译和缓存。

并强行清除所有缓存。

然后安装扩展。

之后,运行编译过程。

上面的过程对我有用。


0

要在Magento中禁用编译,请编辑include / config.php。在第28行附近,取消注释第一行,并注释掉第二行:

#define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src');
define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat');
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.