Magento按属性选项筛选集合


Magento filter collection by attribute option

我对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方法,您可以像我在这里所做的那样访问每个产品属性。