2012-05-09 14 views
14

Tôi đang sử dụng điều hướng lớp của Magento với thuộc tính và giá tùy chỉnh của tôi. Nếu tôi lọc theo giá nó hoạt động; nhưng khi lọc theo tùy chỉnh của tôi thuộc tính nó cho thấy:Điều hướng lớp Magento "Bạn không thể xác định tên tương quan 'mycustomattribute' nhiều lần"

Bạn không thể định nghĩa một tên tương quan 'mycustomattribute' nhiều hơn một lần

dấu vết:

#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

Xin vui lòng, reedit nó. – WojtekT

+0

vừa làm. Xin lỗi – Sam

Trả lời

27

Đó là do danh mục catalog/layer_view được gọi hai lần. Bạn có thể tìm kiếm 'type = "catalog/layer_view"' thông qua các tệp xml của bạn. Loại bỏ khối bạn không cần. Hoặc thay đổi loại khác lớp

+0

FYI: Trong trường hợp của tôi, lớp của tôi có phương thức '_getCount()' tùy chỉnh đang thực hiện tất cả logic lọc tương tự như 'apply()' để tôi có thể cung cấp số lượng giá trị trong trình đơn điều hướng lớp. Điều này hoạt động khi áp dụng bất kỳ bộ lọc nào khác (hoặc không có bộ lọc) nhưng ngay sau khi tôi áp dụng bộ lọc tùy chỉnh của tôi, logic đã được sao chép. Khối không phải trùng lặp để chạy vào vấn đề này. –

4

tôi đã <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/> hai lần. Đã xóa một dòng và sửa nó.

0

Đối với tôi câu trả lời Dubbo là đúng, nhưng đặc biệt hơn là tôi phát hiện ra rằng Magento Enterprise chạm vào nút xml catalog_category_layered trong file enterprise_search.xml

+0

Tôi cũng đang sử dụng doanh nghiệp và gặp sự cố tương tự với thuộc tính sản phẩm tùy chỉnh ** Màu sắc **. Bất kỳ cơ hội nào bạn có thể cung cấp chi tiết về các bước bạn đã thực hiện để giải quyết vấn đề? Mọi sự trợ giúp sẽ rất được trân trọng. –

+0

Sửa chữa có thể được tìm thấy ở đây: http://aceph.tumblr.com/post/21851233473/magento-you-cannot-define-a-correlation-name –

0

Điều này làm cho cùng một vấn đề. -adding thuộc tính tương tự với loại hai lần khi xây dựng một bộ sưu tập:

LƯU Ý: gọi setCollection ($ this-> getMyCollection); trên mẫu gây ra lỗi của tôi, vì 'màu' đã được thêm vào thứ tự sắp xếp làm thứ tự sắp xếp mặc định.

SOLUTION: một cách nhanh chóng để khắc phục điều này là để loại bỏ các thứ tự sắp xếp mặc định từ yêu cầu sau khi nhận được các giá trị:

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

khác mở rộng Block và ghi đè lên các phương pháp setCollection() cho các nhu cầu cụ thể của bạn.

1

trường hợp của tôi, tôi phải đi xe khối mà whas gõ = "catalog/layer_view" từ tệp local.xml và catalog.xml và đặt loại biến đổi = "catalog/layer_view" của tôi. hãy chắc chắn chỉ có một khối chứa loại = "catalog/layer_view".

0

Đối với bất kỳ ai trong số các bạn đang tìm cách giải quyết vấn đề này trong Magento Enterprise Edition, hãy kiểm tra xem catalog.xml hoặc mẫu local.xml của bạn có điều hướng lớp tìm kiếm danh mục hay không. Nếu bạn có nó, hãy ghi đè lên tệp search.xml trong chủ đề hiện tại của bạn từ chủ đề doanh nghiệp và làm trống tất cả tham chiếu khối trong đó.

0

Đã có một vấn đề tương tự trên một doanh nghiệp xây dựng, vì vậy đăng cho bất cứ ai khác mà cần nó - Hóa ra tôi đã phải sử dụng sau đây để có được nó để làm việc:

<remove name="enterprisecatalog.leftnav" />