gpt4 book ai didi

php - 如何在 Magento 搜索中重置 addAttributeToFilter

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:16 28 4
gpt4 key购买 nike

我在让循环中的 addAttributeToFilter 函数在 Magento 中运行时遇到问题。我的店铺有测试数据支持搜索以下所有数据;

$attributeSelections=array( array('size' => 44, 'color' => 67, 'manufacturer' => 17),
array('size' => 43, 'color' => 69, 'manufacturer' => 17),
array('size' => 42, 'color' => 70, 'manufacturer' => 17));

还有我的代码来搜索这些组合;

foreach ($attributeSelections as $selection) {
$searcher = Mage::getSingleton('catalogsearch/advanced')->getProductCollection();
foreach ($selection as $k => $v) {
$searcher->addAttributeToFilter("$k", array('eq' => "$v"));
echo "$k: $v<br />";
}
$result=$searcher->getData();
print_r($result);
}

这个循环给出了以下结果(为了观看的乐趣而稍微 sanitizer );

size: 44
color: 67
manufacturer: 17
Array ( [0] => Array ( [entity_id] => 2965 [entity_type_id] => 4 [attribute_set_id] => 28 [type_id] => simple [sku] => 1006-0001 [size] => 44 [color] => 67 [manufacturer] => 17 ) )

size: 43
color: 69
manufacturer: 17
Array ( [0] => Array ( [entity_id] => 2965 [entity_type_id] => 4 [attribute_set_id] => 28 [type_id] => simple [sku] => 1006-0001 [size] => 44 [color] => 67 [manufacturer] => 17 ) )

size: 42
color: 70
manufacturer: 17
Array ( [0] => Array ( [entity_id] => 2965 [entity_type_id] => 4 [attribute_set_id] => 28 [type_id] => simple [sku] => 1006-0001 [size] => 44 [color] => 67 [manufacturer] => 17 ) )

所以我的循环正在运行并生成搜索。但是,在循环的第一次迭代中输入 addAttributeToFilter 的值似乎会为每次搜索保留存储。我已经尝试清除我的搜索对象,例如 unset($searcher) 和 unset($result)。我也尝试过 magento 函数,例如 getNewEmptyItem()、resetData()、distinct() 和 clear(),但都没有达到预期的效果。

基本上,我要做的是在我的脚本尝试以编程方式创建具有这些属性组合的产品之前检查重复的产品。属性选择数组的大小可能不同,因此需要循环。

如果有人能够阐明我的问题,我将不胜感激。

最佳答案

@matei 不幸的是,removeAttributeToSelect 实际上不起作用。我今天发现重置集合的正确方法是:

$searcher->clear()
->getSelect()->reset('where');

这将删除加载的 _items,并删除集合选择中的任何 where 子句。然后您可以添加新的条件并加载 集合。

关于php - 如何在 Magento 搜索中重置 addAttributeToFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2700614/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com