我已经使用this.In创建了magento自定义模块,这个模块我尝试使用customer_save_after event.Everything是完美的,但当我将创建的模块文件与本地magento合并时出现了问题。它的抛出错误像法师注册表键"_singleton/customer/session“已经存在。我已经清除了缓存和所有东西,但仍然错误不是solved.Can有人建议我的解决方案吗?
以下是错误代码:
a:5:{i:0;s:62:"Mage registry key "_singleton/customer/session" already exists";i:1;s:2302:"#0 /var/www/dev/app/Mage.php(222): Mage::throwException('Mage registry k...')
#1 /var/www/dev/app/Mage.php(477): Mage::register('_singleton/cust...', false)
#2 /var/www/dev/app/code/core/Mage/Checkout/Model/Cart.php(520): Mage::getSingleton('customer/sessio...')
#3 /var/www/dev/app/code/core/Mage/Checkout/Helper/Cart.php(141): Mage_Checkout_Model_Cart->getSummaryQty()
#4 /var/www/dev/app/code/core/Mage/Checkout/Block/Links.php(46): Mage_Checkout_Helper_Cart->getSummaryCount()
#5 [internal function]: Mage_Checkout_Block_Links->addCartLink()
#6 /var/www/dev/app/code/core/Mage/Core/Model/Layout.php(348): call_user_func_array(Array, Array)
#7 /var/www/dev/app/code/core/Mage/Core/Model/Layout.php(214): Mage_Core_Model_Layout->_generateAction(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#8 /var/www/dev/app/code/core/Mage/Core/Model/Layout.php(206): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#9 /var/www/dev/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#10 /var/www/dev/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#11 /var/www/dev/app/code/core/Mage/Cms/Helper/Page.php(113): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#12 /var/www/dev/app/code/core/Mage/Cms/Helper/Page.php(52): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_IndexController), 'home')
#13 /var/www/dev/app/code/core/Mage/Cms/controllers/IndexController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), 'home')
#14 /var/www/dev/app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Cms_IndexController->indexAction()
#15 /var/www/dev/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('index')
#16 /var/www/dev/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#17 /var/www/dev/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#18 /var/www/dev/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#19 /var/www/dev/index.php(87): Mage::run('', 'store')
#20 {main}";s:3:"url";s:5:"/dev/";s:11:"script_name";s:14:"/dev/index.php";s:4:"skin";s:7:"default";} -Thanks
发布于 2014-02-21 00:59:56
这是因为您已经注册了相同的密钥名称_singleton/customer/session。
#文件: app/Mage.php//您可以在此文件中看到以下函数
public static function register($key, $value, $graceful = false)
{
if (isset(self::$_registry[$key])) {
if ($graceful) {
return;
}
self::throwException('Mage registry key "'.$key.'" already exists');
}
self::$_registry[$key] = $value;
}我们可以看到,存储在注册表中的任何对象或值最终都存储在静态$_registry类变量中。我们还可以看到,在存储值之前,Magento会检查它是否已经设置。如果是这样,Magento将抛出异常(缺省行为)或正常返回null
它已与其他值一起设置
最后,如果要使变量不可用,可以使用unregister方法将其从注册表中删除。
Mage::unregister('some_name');希望这能对你有所帮助
发布于 2014-05-12 21:48:04
当我尝试重命名位于App/Code/Codepool/中的<module> folder时,我得到了相同的错误。
看起来您在xml(app/etc/modules/<somemodule.xml>)中提到的名称与位于CodePool中的模块文件夹不匹配。
将Module Folder重命名为在xml file中注册将解决此问题。
发布于 2014-05-12 21:52:10
在shell的magento文件夹中:
php -f compiler.php clear
php -f compiler.php disable这将禁用编译并清除文件,然后使用以下命令删除var/cache/*和var/session/*的内容:
rm -Rf var/cache/*
rm -Rf var/session/*还可以尝试禁用app/etc/modules/module.xml中的模块
https://stackoverflow.com/questions/21905263
复制相似问题