Очень часто в CMS Magento (Мадженто) требуется отфильтровать коллекцию продуктов по свойствам(атрибутам).
В Magento есть метод(функция) addFieldToFilter() которая помогает фильтровать коллекции продуктов.
Пример простого фильтра для коллекции продуктов, выбрать из коллекции продуктов Magento,
продукт у которого атрибут sku равен magentoSkuuu
Mage::getModel('catalog/product')
->getCollection()
->addFieldToFilter('sku',array('eq'=>'magentoSkuuu'))
->getSelect();
фильтр устанавливается методом addFieldToFilter(‘sku’,array(‘eq’=>’magentoSkuuu’))
где sku атрибут по которому необходимо фильтровать, второй параметр PHP массив в котором есть ключ – тип фильтрации и значение ключа “magentoSkuuu” параметр для фильтрации.
Ниже пример фильтров для коллекций продуктов Magento, а также эквивалент в SQL
array("eq"=>'magentoSkuuu')
WHERE (e.sku = 'magentoSkuuu')
array("neq"=>'magentoSkuuu')
WHERE (e.sku != 'magentoSkuuu')
array("like"=>'magentoSkuuu')
WHERE (e.sku like 'magentoSkuuu')
array("nlike"=>'magentoSkuuu')
WHERE (e.sku not like 'magentoSkuuu')
array("is"=>'magentoSkuuu')
WHERE (e.sku is 'magentoSkuuu')
array("in"=>array('magentoSkuuu'))
WHERE (e.sku in ('magentoSkuuu'))
array("nin"=>array('magentoSkuuu'))
WHERE (e.sku not in ('magentoSkuuu'))
array("notnull"=>'magentoSkuuu')
WHERE (e.sku is NOT NULL)
array("null"=>'magentoSkuuu')
WHERE (e.sku is NULL)
array("gt"=>'magentoSkuuu')
WHERE (e.sku > 'magentoSkuuu')
array("lt"=>'magentoSkuuu')
WHERE (e.sku < 'magentoSkuuu')
array("gteq"=>'magentoSkuuu')
WHERE (e.sku >= 'magentoSkuuu')
array("moreq"=>'magentoSkuuu')
WHERE (e.sku >= 'magentoSkuuu')
array("lteq"=>'magentoSkuuu')
WHERE (e.sku <= 'magentoSkuuu')
array("finset"=>array('magentoSkuuu'))
WHERE (find_in_set('magentoSkuuu',e.sku))
array('from'=>'10','to'=>'20')
WHERE e.sku >= '10' and e.sku <= '20'