每当我试图更改密码或在我们的网站下测试订单时,我一直在获得"验证类未从basename 'NotEmpty'错误中找到"。当我检查error_log时,我看到以下错误,但我不知道它是什么意思…
PHP Fatal error: Call to undefined method Mage_Catalog_Model_Resource_Category_Flat_Collection::getAllIdsSql() in /public_html/app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php on line 295
有人知道吗?
这是一个Magento的bug。
如果没有平面表,Mage::getModel('catalog/category')->getCollection()
将返回一个Mage_Catalog_Model_Resource_Category_Collection
对象,该对象从具有getAllIdsSql()
方法的Mage_Eav_Model_Entity_Collection_Abstract
扩展而来。
但是,如果启用了平面表,那么集合将是一个不继承getAllIdsSql()
方法的Mage_Catalog_Model_Resource_Category_Flat_Collection
,从而导致您看到的错误。
如果你有企业支持,联系他们,他们会提供一个补丁。
编辑:有补丁:https://gist.github.com/piotrekkaminski/25db530371b900d0d969
此错误已在Magento社区版1.9.1.0版本中修复。我建议将您的Magento安装升级到最新版本,其中还包括几个安全补丁,因为修改核心通常被认为是不好的做法,并且最终会导致将来不容易识别和修复的问题。