我 试图 在 类别 页面 上 列出 产品 , 该 页面 由 一 个 扩展 过滤 , 该 扩展 对 客户 隐藏 给定 类别 中 的 产品 , 但 批准 的 客户 组 中 的 产品 除外 。
筛选 器 要求 传递 产品 集合 以 进行 处理 。 Helper 类 用于 通过 重写 prepareProductCollection
函数 in Mage_Catalog_Model_Layer
来 完成 此 操作 。
此时 , 集合 的 类型 应为 Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
, 但 传递 给 扩展 Mage_Catalog_Model_Layer
的 类 的 集合 的 类型 为 Mage_Catalog_Model_Resource_Product_Collection
, 这 将 导致 Helper 类 失败 。 如果 查看 下面 的 堆栈 跟踪 , 则 在 函数 之前 使用 的 所有 Magento 类 都 应 返回 Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
。
Recoverable Error: Argument 1 passed to Netzarbeiter_GroupsCatalog_Helper_Data::addGroupsFilterToProductCollection() must be an instance of Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection, instance of Mage_Catalog_Model_Resource_Product_Collection given, called in /home/namespace/public_html/b2b/app/code/community/Netzarbeiter/GroupsCatalog/Model/Catalog/Layer.php on line 37 and defined in /home/namespace/public_html/b2b/app/code/community/Netzarbeiter/GroupsCatalog/Helper/Data.php on line 475
# 0 /home/namespace/public_html/b2b/app/code/community/Netzarbeiter/GroupsCatalog/Helper/Data.php(475): mageCoreErrorHandler(4096, 'Argument 1 pass...', '/home/namespace/...', 475, Array)
# 1 /home/namespace/public_html/b2b/app/code/community/Netzarbeiter/GroupsCatalog/Model/Catalog/Layer.php(37): Netzarbeiter_GroupsCatalog_Helper_Data->addGroupsFilterToProductCollection(Object(Mage_Catalog_Model_Resource_Product_Collection))
# 2 /home/namespace/public_html/b2b/app/code/core/Mage/Catalog/Model/Layer.php(103): Netzarbeiter_GroupsCatalog_Model_Catalog_Layer->prepareProductCollection(Object(Mage_Catalog_Model_Resource_Product_Collection))
# 3 /home/namespace/public_html/b2b/app/code/core/Mage/Catalog/Block/Product/List.php(87): Mage_Catalog_Model_Layer->getProductCollection()
# 4 /home/namespace/public_html/b2b/app/code/core/Mage/Catalog/Block/Product/List.php(142): Mage_Catalog_Block_Product_List->_getProductCollection()
# 5 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Abstract.php(918): Mage_Catalog_Block_Product_List->_beforeToHtml()
# 6 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Abstract.php(637): Mage_Core_Block_Abstract->toHtml()
# 7 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Abstract.php(581): Mage_Core_Block_Abstract->_getChildHtml('product_list', true)
# 8 /home/namespace/public_html/b2b/app/code/core/Mage/Catalog/Block/Category/View.php(90): Mage_Core_Block_Abstract->getChildHtml('product_list')
# 9 /home/namespace/public_html/b2b/app/design/frontend/safes/default/template/local/catalog/category/view.phtml(87): Mage_Catalog_Block_Category_View->getProductListHtml()
# 10 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Template.php(241): include('/home/namespace/...')
# 11 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/safes/...')
# 12 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
# 13 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Abstract.php(919): Mage_Core_Block_Template->_toHtml()
# 14 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Text/List.php(43): Mage_Core_Block_Abstract->toHtml()
# 15 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Abstract.php(919): Mage_Core_Block_Text_List->_toHtml()
# 16 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Abstract.php(637): Mage_Core_Block_Abstract->toHtml()
# 17 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Abstract.php(581): Mage_Core_Block_Abstract->_getChildHtml('content', true)
# 18 /home/namespace/public_html/b2b/app/design/frontend/safes/default/template/page/1column.phtml(48): Mage_Core_Block_Abstract->getChildHtml('content')
# 19 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Template.php(241): include('/home/namespace/...')
# 20 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/safes/...')
# 21 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
# 22 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Block/Abstract.php(919): Mage_Core_Block_Template->_toHtml()
# 23 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abstract->toHtml()
# 24 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout->getOutput()
# 25 /home/namespace/public_html/b2b/app/code/local/Aserty/Filter/controllers/CategoryController.php(34): Mage_Core_Controller_Varien_Action->renderLayout()
# 26 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Aserty_Filter_CategoryController->viewAction()
# 27 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('view')
# 28 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
# 29 /home/namespace/public_html/b2b/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
# 30 /home/namespace/public_html/b2b/app/Mage.php(684): Mage_Core_Model_App->run(Array)
# 31 /home/namespace/public_html/b2b/index.php(90): Mage::run('', 'store')
# 32 {main}
中 的 每 一 个
1条答案
按热度按时间2izufjch1#
Mysql4
类在Magento 1.5或1.6之后就被弃用了,它们的存在只是为了向后兼容。如果你看一下它们的源代码,你会发现它们扩展了“新”的资源模型,而没有任何自己的代码:现在,这工作正常,直到一个扩展类型提示对旧类,但Magento实际上示例化新的。
尝试获取与当前Magento版本兼容的扩展的更新版本。如果不可能,您可以通过替换所有
Mysql4
类型提示来自己修补它。