2012-05-09 56 views
14

我使用Magento的分層導航與我的自定義屬性和價格。如果我按價格過濾它的作品;但我的自定義過濾時屬性,它表明:Magento分層導航「你不能多次定義相關名'mycustomattribute'

你不能定義一個相關名 'mycustomattribute' 不止一次

跟蹤:

#0 /home/coloresh/public_html/ColoreSG.com/lib/Varien/Db/Select.php(281): 
Zend_Db_Select->_join('inner join', Array, 'metal_idx.entit...', Array, NULL) 
#1 /home/coloresh/public_html/ColoreSG.com/lib/Zend/Db/Select.php(336):   Varien_Db_Select->_join('inner join', Array, 'metal_idx.entit...', Array, NULL) 
#2 /home/coloresh/public_html/ColoreSG.com/lib/Zend/Db/Select.php(315): Zend_Db_Select->joinInner(Array, 'metal_idx.entit...', Array, NULL) 
#3 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Attribute.php(70): Zend_Db_Select->join(Array, 'metal_idx.entit...', Array) 
#4 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Catalog/Model/Layer/Filter/Attribute.php(94): Mage_Catalog_Model_Resource_Layer_Filter_Attribute->applyFilterToCollection(Object(Mage_Catalog_Model_Layer_Filter_Attribute), '49') 
#5 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Catalog/Block/Layer/Filter/Abstract.php(91): Mage_Catalog_Model_Layer_Filter_Attribute->apply(Object(Mage_Core_Controller_Request_Http), Object(Mage_Catalog_Block_Layer_Filter_Attribute)) 
#6 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Catalog/Block/Layer/Filter/Abstract.php(73): Mage_Catalog_Block_Layer_Filter_Abstract->_initFilter() 
#7 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Catalog/Block/Layer/View.php(136): Mage_Catalog_Block_Layer_Filter_Abstract->init() 
#8 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Core/Block/Abstract.php(238): Mage_Catalog_Block_Layer_View->_prepareLayout() 
#9 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Core/Model/Layout.php(456): Mage_Core_Block_Abstract->setLayout(Object(Mage_Core_Model_Layout)) 
#10 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('catalog/layer_v...', 'catalog.leftnav') 
#11 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('catalog/layer_v...', 'catalog.leftnav') 
#12 /home/coloresh/public_html/ColoreSG.com/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 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element)) 
#14 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks() 
#15 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Catalog/controllers/CategoryController.php(146): Mage_Core_Controller_Varien_Action->generateLayoutBlocks() 
#16 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Catalog_CategoryController->viewAction() 
#17 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('view') 
#18 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http)) 
#19 /home/coloresh/public_html/ColoreSG.com/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch() 
#20 /home/coloresh/public_html/ColoreSG.com/app/Mage.php(683): Mage_Core_Model_App- >run(Array) 
#21 /home/coloresh/public_html/ColoreSG.com/index.php(87): Mage::run('', 'store') 
#22 {main} 
+0

請,重新編輯它。 – WojtekT

+0

只是。對不起 – Sam

回答

27

這是因爲catalog/layer_view模塊被調用了兩次。 您可以通過您的xml文件搜索'type =「catalog/layer_view」'。刪除你不需要的塊。或類型更改爲另一個類

+0

僅供參考:在我的例子中,我的類有一個自定義的_getCount()方法,它執行與apply()相同的過濾邏輯,以便我可以在分層導航菜單中提供值計數。這適用於應用任何其他過濾器(或沒有過濾器),但只要我應用我的自定義過濾器,邏輯被複制。該塊不必重複以解決此問題。 –

4

<block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/> 兩次。 刪除一行並修復它。

0

對我來說達博的回答是正確的,但更具體的我發現,Magento企業倒是在enterprise_search.xml文件

+0

我也在使用企業版,並且遇到類似的問題,我的自定義產品屬性**顏色**。你有沒有機會提供你解決問題的步驟細節?任何幫助將不勝感激。 –

+0

修正可以在這裏找到:http://aceph.tumblr.com/post/21851233473/magento-you-cannot-define-a-correlation-name –

0

這會導致同樣的問題catalog_category_layered XML節點。

注: 構建集合時-adding相同屬性的排序兩次調用setCollection($這個 - > getMyCollection);在模板上導致我的錯誤, ,因爲'顏色'已被添加到排序順序作爲默認排序順序。

解決方案:一個快速的方法來解決這個問題是從請求刪除默認的排序順序獲得價值後:

$this->getRequest()->setParam('order',''); 

否則擴展模塊和覆蓋setCollection()方法爲您的特定需求。

1

即時通訊我的情況我必須從local.xml和catalog.xml中獲取whas type =「catalog/layer_view」的塊,並將修改後的type =「catalog/layer_view」塊。確保只有一個包含type =「catalog/layer_view」的塊。

0

對於任何想要在Magento Enterprise Edition中解決此問題的方法,請檢查catalog.xml或local.xml模板是否具有目錄搜索分層導航。如果確實有,請從企業主題中覆蓋當前主題中的search.xml,並清空其中的所有塊引用。

0

也有類似的問題,在企業構建,所以發帖爲別人需要它 - 原來我不得不使用下面爲了得到它的工作:

<remove name="enterprisecatalog.leftnav" />