2011-11-10 30 views
1

把此行view.phtml ...Magento的upsell_products引發錯誤 「必須是Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection的實例」

<?php echo $this->getChildHtml('upsell_products') ?> 

...引發此錯誤:

Recoverable Error: Argument 1 passed to Mage_Catalog_Block_Product_Abstract::_addProductAttributesAndPrices() must be an instance of Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection, instance of Mage_Catalog_Model_Resource_Product_Link_Product_Collection given, called in D:\active\***\src\app\code\core\Mage\Catalog\Block\Product\List\Upsell.php on line 65 and defined in D:\active\***\src\app\code\local\Mage\Catalog\Block\Product\Abstract.php on line 355 

#0 D:\active\***\src\app\code\local\Mage\Catalog\Block\Product\Abstract.php(355): mageCoreErrorHandler(4096, 'Argument 1 pass...', 'D:\active\***...', 355, Array) 
#1 D:\active\***\src\app\code\core\Mage\Catalog\Block\Product\List\Upsell.php(65): Mage_Catalog_Block_Product_Abstract->_addProductAttributesAndPrices(Object(Mage_Catalog_Model_Resource_Product_Link_Product_Collection)) 
#2 D:\active\***\src\app\code\core\Mage\Catalog\Block\Product\List\Upsell.php(94): Mage_Catalog_Block_Product_List_Upsell->_prepareData() 
#3 D:\active\***\src\app\code\core\Mage\Core\Block\Abstract.php(862): Mage_Catalog_Block_Product_List_Upsell->_beforeToHtml() 
#4 D:\active\***\src\app\code\core\Mage\Core\Block\Abstract.php(582): Mage_Core_Block_Abstract->toHtml() 
#5 D:\active\***\src\app\code\core\Mage\Core\Block\Abstract.php(526): Mage_Core_Block_Abstract->_getChildHtml('upsell_products', true) 
#6 D:\active\***\src\app\design\frontend\default\***\template\catalog\product\view.phtml(163): Mage_Core_Block_Abstract->getChildHtml('upsell_products') 

我發現只有一個forum topic,它說,有不兼容模塊的magento 1.6核心。

你能幫我解決這個問題嗎?

回答

3

我有同樣的問題,來自擴展名「Market Ready Germany 2.1.3」。 它來自不兼容的核心覆蓋,打破了產品視圖頁面。這是如何從1.5解決它的Magento的。+

1.複製當前的核心文件

\app\code\core\Mage\Catalog\Block\Product\Abstract.php 

\app\code\local\Mage\Catalog\Block\Product\Abstract.php 

確保備份在本地存在的文件(只需重命名它)。

2.比較兩個文件

打開舊的本地文件,然後搜索這個方法:

public function getPriceHtml(

應該有他們周圍的兩個部分,解說:

//begin: symmetrics code 
... 
//end: symmetrics code 

只需將第一個對稱部分複製到方法開始處,然後將第二部分複製到返回值。而已。刪除var/cache/*的內容並打開一個產品視圖頁面,它不會再記錄任何錯誤。

親切的問候

克里斯

+0

我剛剛刪除\ app \ code \ local \ Mage \ Catalog \ Block \ Product \ Abstract.php,它的工作原理。謝謝! –

0

有一個快速的解決方案:編輯文件 \本地\法師\目錄\塊\產品\ Abstract.php

,改變

protected function _addProductAttributesAndPrices(Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $collection)

protected function _addProductAttributesAndPrices(Mage_Catalog_Model_Resource_Product_Link_Product_Collection $collection)

但這不是最好的解決方案。

相關問題