2012-05-09 9 views
14

Uso la navigazione a livelli di Magento con i miei attributi e il prezzo personalizzati. Se filtro per prezzo funziona; ma quando si filtra dal mio attributi personalizzati si vede:Navigazione a strati di Magento "Non è possibile definire un nome di correlazione" mycustomattribute "più di una volta"

Non è possibile definire un nome di correlazione 'mycustomattribute' più di una volta

traccia:

#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

prega, rieditare esso. – WojtekT

+0

appena fatto. Scusa – Sam

risposta

27

È perché il modulo catalog/layer_view è stato chiamato due volte. Puoi cercare 'type = "catalog/layer_view"' attraverso i tuoi file xml. Rimuovi il blocco che non ti serve. O modificare il tipo di un'altra classe

+0

FYI: Nel mio caso, la mia classe aveva un metodo '_getCount()' personalizzato che stava facendo la stessa logica di filtraggio di 'apply()' in modo che potessi fornire conteggi di valore nel menu di navigazione a più livelli. Funziona quando si applica un altro filtro (o nessun filtro) ma non appena ho applicato il mio filtro personalizzato, la logica è stata duplicata. Il blocco non doveva essere duplicato per incontrare questo problema. –

4

ho avuto <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/> due volte. Eliminata una riga e riparata.

0

Per me la risposta di Dubbo aveva ragione, ma più specificamente ho scoperto che Magento Enterprise tocca il nodo XML catalog_category_layered nel file enterprise_search.xml

+0

Anche io uso l'azienda e ho riscontrato un problema simile con il mio attributo di prodotto personalizzato ** Colori **. Qualche possibilità di fornire dettagli sui passaggi da te intrapresi per risolvere il problema? Qualsiasi aiuto sarebbe molto apprezzato. –

+0

Fix può essere trovato qui: http://aceph.tumblr.com/post/21851233473/magento-you-cannot-define-a-correlation-name –

0

Questo fa sì che lo stesso problema. -Aggiunta lo stesso attributo per il genere due volte quando si costruisce una collezione:

NOTA: chiamare setCollection ($ this-> getMyCollection); sul modello ha causato il mio errore, perché "colore" era già stato aggiunto all'ordinamento come ordine di ordinamento predefinito.

SOLUZIONE: un modo rapido per risolvere questo problema è quello di rimuovere l'ordinamento predefinito dalla richiesta dopo ottenere il valore:

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

altrimenti estendere il blocco e l'override del metodo setCollection() per le vostre esigenze particolari.

1

nel mio caso devo andare in giro per il blocco che whas type = "catalog/layer_view" da local.xml e catalog.xml e inserire il mio blocco type = "catalog/layer_view" modificato. assicurati che ci sia solo un blocco che contiene type = "catalog/layer_view".

0

Per tutti coloro che sono alla ricerca di un modo per risolvere questo problema in Magento Enterprise Edition, verificare se il proprio modello catalog.xml o local.xml ha una navigazione a livello di ricerca di catalogo. Se ce l'hai, sostituisci search.xml nel tema corrente dal tema aziendale e svuota tutto il riferimento di blocco al suo interno.

0

avuto un problema simile su un accumulo Enterprise, in modo da inviare per chiunque altro che ne ha bisogno - si è rivelato ho dovuto utilizzare il seguente al fine di farlo funzionare:

<remove name="enterprisecatalog.leftnav" /> 
Problemi correlati