- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在让循环中的 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/
我在 Magento 多选择属性上使用 addAttributeToFilter 时遇到问题。 我有一个汽车制造商的多选属性,所以内容是“奥迪”、“宝马”等。在我的示例中,我有一个轮胎产品,我从多项选
我正在尝试在我的商店中添加一些过滤器,但它们有一个令人讨厌的副作用。 假设我有产品类型 A 和 B。现在我只想显示颜色 = 蓝色/红色的 A。 $collection = Mage::getResou
我正在尝试使用以下多选属性来过滤 magento 产品集合... $_productCollection = Mage::getResourceModel('catalog/product_colle
我正在尝试通过具有以下内容的多选属性来过滤 magento 产品集合...... $_productCollection = Mage::getResourceModel('catalog/produ
我是 Magento getResourceModel 的新手,我正在尝试向我的查询添加一个简单的过滤器,但我无法使用 getResourceModel 进行计算。 原始查询: $collection
在 Magento 中,我需要获取特定类别中没有特价的产品。 这是我想出的: load( $currentCategoryId ); $productCollection = Mage::getRes
我在让循环中的 addAttributeToFilter 函数在 Magento 中运行时遇到问题。我的店铺有测试数据支持搜索以下所有数据; $attributeSelections=array( a
我在使用“addAttributeToFilter”过滤具有客户属性的产品集合时遇到问题。我有一个带有"is"和“否”选项的下拉菜单属性,我只想显示属性设置为"is"的产品列表。我目前正在使用: pu
我已经制作了我的 Magento 模型: _init("sliderboard/slider"); } } 当我尝试在我的街区使用它时: class Kiwi_SliderBoard_Bloc
我想根据不同属性的多个标准来选择产品。 我知道如何使用 $collection->addAttributeToFilter('someattribute', array('like' => '%'))
我正在尝试将多个过滤器添加到 magento 集合中,我可以在基本级别上执行此操作。我真正想做的是能够通过多个嵌套过滤器来过滤集合,这些过滤器可以是任何级别的深度。例如,我知道我可以使用如下代码添加多
Magento 中的 addAttributeToFilter 和 addFieldToFilter 有什么区别?我创建了一个自定义属性 YES/NO。但是当我试图拉出一个产品系列时,它们都不适合我。
我在数据库中有数组值,我也想从数组中搜索值。 例如: 我有一个数组 ('13,14') 并且在数据库中我有类似 (13,14) 或 (13) 的值> 或 (14) 或 (15)。因此,当我搜索 ('1
我是一名优秀的程序员,十分优秀!