magento的addAttributeToFilter是一个可以在Magento产品集合调用的函数。简言之,它添加到WHERE条件的MySQL查询的一部分用于从数据库中提取的产品集合。
$_products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect(array('name', 'product_url', 'small_image'))
->addAttributeToFilter('sku', array('like' => 'UX%'))
->load();
上面的代码,会得到一个产品的集合,每个产品有它的名字,网址,价格和小的图像,它的数据阵列中装入。通过一个SKU以UX进模糊查询,该产品将收集过滤,包含唯一的产品。
addAttributeToFilter条件语句 等于:eq
$_products->addAttributeToFilter('status', array('eq' => 1));
不等于: neq
$_products->addAttributeToFilter('sku', array('neq' => 'test-product'));
Like:like
$_products->addAttributeToFilter('sku', array('like' => 'UX%'));
注意like是可以包含SQL通配符,如百分号。 Not Like:nlike
$_products->addAttributeToFilter('sku', array('nlike' => 'err-prod%'));
In:in
$_products->addAttributeToFilter('id', array('in' => array(1,4,74,98)));
参数还可以接受一个数组的值。 Not In:nin
$_products->addAttributeToFilter('id', array('nin' => array(1,4,74,98)));
NULL:null
$_products->addAttributeToFilter('description', 'null');
Not NULL:notnull
$_products->addAttributeToFilter('description', 'notnull');
大于:gt
$_products->addAttributeToFilter('id', array('gt' => 5));
小于:lt
$_products->addAttributeToFilter('id', array('lt' => 5));
大于或等于:gteq
$_products->addAttributeToFilter('id', array('gteq' => 5));
小于或等于: lteq
$_products->addAttributeToFilter('id', array('lteq' => 5));
addFieldToFilter() 关于addFieldToFilter()的一些用法请看:http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/using_collections_in_magento
调试SQL查询
// Method 1
Mage::getModel('catalog/product')->getCollection()->load(true);
// Method 2 (Quicker, Recommended)
$collection = Mage::getModel('catalog/product')->getCollection();
echo $collection->getSelect();
方法1和方法2都是打印查询的,但各自有略微不同的方式。方法1,打印查询以及装载产品,而方法2将只查询对象转换为一个字符串(即会打印出的SQL语句)。第二种方法是肯定更好,更快,因为它会被执行,但我有参考他们都在这里。 在一个侧面说明,我将很快被写上getSelect()函数的文章,因为它开辟了一个门在Magento集合,让他们(和你)真正的力量! (责任编辑:最模板) |

ecshop也买酒2012最新模板
人气:2991
ecshop仿VCOTTON维棉模板
人气:615
dedecms本色视觉婚庆摄影企
人气:433
Aspire英文夏季服饰商城m
人气:215
黑色衣服鞋子外贸商城|
人气:755
织梦dede机械设备公司企业
人气:3257