我正在使用Magento的catalogsearch模块。我有2家商店。在第一个搜索“test”时,我得到5个结果。当在第二个上搜索“test”时,我得到3个结果。
当我在第一个商店中搜索时,我想添加第二个商店的结果(只是结果的数量)。
我添加了一个块和一个模板,我需要的是用于检索第二个商店中结果数量的代码,这就是我被困的地方。
我试图获取控制器代码,但它总是返回第一个商店中的结果数量:
私人功能 _getStoreQuery($ storeId){
$query = Mage::helper('catalogSearch')->getQuery(); $query->setStoreId(7); if ($query->getQueryText()) { if (Mage::helper('catalogSearch')->isMinQueryLength())
{ $查询 - > SETID(0) - > setIsActive(1) - > setIsProcessed(1); } 其他{ if($ query-> getId()){ $查询 - > setPopularity($查询 - > getPopularity()+ 1); } 其他{ $查询 - > setPopularity(1); }
$query->prepare(); } Mage::helper('catalogSearch')->checkNotes(); if (!Mage::helper('catalogSearch')->isMinQueryLength())
{ $查询 - >保存(); } }
var_dump($query); return $query; }
我之前也试过改变商店的上下文,但没有运气: 法师::应用程序() - > setCurrentStore($ secondStoreId);
你知道吗?感谢答案 0 :(得分:1)
第二次尝试返回第一组结果的原因可能是因为您正在重用Mage_Catalogsearch_Model_Query
对象。您需要创建一组新结果。这里的集合将创建这些集合,您只需要遍历$collection
即可获得它们。
$queryText = Mage::helper('catalogSearch')->getQueryText();
$collection = Mage::getResourceModel('catalogsearch/query_collection')
->setStoreId($storeId)
->setQueryFilter($queryText);