14

カスタム属性と価格でMagentoの階層型ナビゲーションを使用しています。価格でフィルタリングすると機能します。しかし、カスタム属性でフィルタリングすると、次のように表示されます。

相関名'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}
4

7 に答える 7

27

これは、catalog/layer_viewモジュールが2回呼び出されたためです。xmlファイルから「type="catalog/layer_view"」を検索できます。不要なブロックを削除します。または、タイプを別のクラスに変更します

于 2012-05-28T04:24:33.517 に答える
4

私は<block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/> 二度持っていました。1行削除して修正しました。

于 2012-05-10T19:21:36.280 に答える
1

私の場合、local.xmlとcatalog.xmlからtype = "catalog / layer_view"であるブロックに乗り、変更したtype = "catalog/layer_view"ブロックを配置する必要があります。type = "catalog/layer_view"を含むブロックが1つだけであることを確認してください。

于 2014-07-21T09:18:38.923 に答える
0

私にとってDubboの答えは正しかったのですが、より具体的には、MagentoEnterpriseがenterprise_search.xmlファイルのcatalog_category_layeredxmlノードにアクセスしていることがわかりました。

于 2013-01-04T17:35:58.863 に答える
0

これは同じ問題を引き起こします。-コレクションを作成するときに、同じ属性を並べ替えに2回追加します。

...
    ->addAttributeToSort('color', 'asc')
    ->addAttributeToSort('color', 'asc');

注:setCollection($ this-> getMyCollection);を呼び出します。'color'がデフォルトの並べ替え順序として並べ替え順序にすでに追加されているため、テンプレートでエラーが発生しました。

解決策:これを修正する簡単な方法は、値を取得した後、リクエストからデフォルトの並べ替え順序を削除することです。

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

それ以外の場合は、Blockを拡張し、特定のニーズに合わせてsetCollection()メソッドをオーバーライドします。

于 2013-02-11T03:57:59.567 に答える
0

Magento Enterprise Editionでこの問題を解決する方法を探している人は、catalog.xmlまたはlocal.xmlテンプレートにカタログ検索の階層化ナビゲーションがあるかどうかを確認してください。持っている場合は、エンタープライズテーマから現在のテーマのsearch.xmlをオーバーライドし、その中のすべてのブロック参照を空にします。

于 2015-05-04T18:45:13.863 に答える
0

エンタープライズビルドでも同様の問題が発生したため、それを必要とする他の人に投稿する-それを機能させるには、次のものを使用する必要がありました。

<remove name="enterprisecatalog.leftnav" />
于 2016-11-09T13:46:25.200 に答える