栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Magento-检索具有特定属性值的产品

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Magento-检索具有特定属性值的产品

几乎所有的Magento模型都有一个对应的Collection对象,该对象可用于获取模型的多个实例。

要实例化产品集合,请执行以下操作

$collection = Mage::getModel('catalog/product')->getCollection();

产品是Magento EAV样式的模型,因此您需要添加要返回的任何其他属性。

$collection = Mage::getModel('catalog/product')->getCollection();//fetch name and orig_price into data$collection->addAttributeToSelect('name');  $collection->addAttributeToSelect('orig_price');

在集合上设置过滤器有多种语法。我总是使用下面的详细说明,但您可能想检查Magento源,以了解可以使用其他过滤方法的其他方式。

下面显示了如何按一定范围的值(大于AND小于)进行过滤

$collection = Mage::getModel('catalog/product')->getCollection();$collection->addAttributeToSelect('name');  $collection->addAttributeToSelect('orig_price');//filter for products whose orig_price is greater than (gt) 100$collection->addFieldToFilter(array(    array('attribute'=>'orig_price','gt'=>'100'),));//AND filter for products whose orig_price is less than (lt) 130$collection->addFieldToFilter(array(    array('attribute'=>'orig_price','lt'=>'130'),));

虽然这将按等于一件事或另一件事的名称进行过滤。

$collection = Mage::getModel('catalog/product')->getCollection();$collection->addAttributeToSelect('name');  $collection->addAttributeToSelect('orig_price');//filter for products who name is equal (eq) to Widget A, or equal (eq) to Widget B$collection->addFieldToFilter(array(    array('attribute'=>'name','eq'=>'Widget A'),    array('attribute'=>'name','eq'=>'Widget B'),        ));

可以在中的

_getConditionSql
方法中找到支持的简短条件(eq,lt等)的完整列表。
lib/Varien/Data/Collection/Db.php

最后,所有Magento集合都可以迭代(基本集合类在迭代器接口上实现)。设置过滤器后,您将可以通过这种方式获取商品。

$collection = Mage::getModel('catalog/product')->getCollection();$collection->addAttributeToSelect('name');  $collection->addAttributeToSelect('orig_price');//filter for products who name is equal (eq) to Widget A, or equal (eq) to Widget B$collection->addFieldToFilter(array(    array('attribute'=>'name','eq'=>'Widget A'),    array('attribute'=>'name','eq'=>'Widget B'),        ));foreach ($collection as $product) {    //var_dump($product);    var_dump($product->getData());}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/435291.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号