我对Magento很陌生,我想弄清楚如何过滤产品集合。这里有一个情况:我有一个产品,它有一个"风格",这是一个产品的属性(风格的例子:黄铜)。我需要找到所有其他样式为黄铜的产品。
我做了一些研究,发现了addFieldToFilter()方法,但它似乎不工作(或者,最有可能的是,我没有正确使用它):
$same_style_collection = Mage::getModel('catalog/product')->getCollection()
->addFieldToFilter(array(array('attribute' => 'name', 'like' => 'brass')));
有人能帮我吗?非常感谢。
你试过吗?
$collection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter('style', 'brass');
这将为您提供具有属性style
且值为brass
的所有产品。
当你想从EAV收集中过滤数据时,你使用addAttributeToFilter
,当你想从Flat table收集中过滤数据时,你使用addFieldToFilter
。
$collection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*');
foreach ($collection as $product) {
echo $product->getName() . "<br />";
}
使用这样的getter setter方法,您可以像我在这里所做的那样访问每个产品属性。