`
天梯梦
  • 浏览: 13729315 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

Magento: addAttributeToFilter 和 addFieldToFilter 的区别 Difference between addAttri

 
阅读更多

 addAttributeToFilter is used to filter EAV collections and will filter the products based on the attributes that you've included in your collection.

EAV-models: product, customer, sales, etc.

addFieldToFilter is used to filter Non-EAV collections and will filter the products based on columns in the database from the table catalog_product_entity.

EAV-models are for example product, customer, sales, etc so you can use use addAttributeToFilter() for those entities.

 

addFieldToFilter() is mapped to addAttributeToFilter() for EAV entities. So you can just use addFieldToFiler().

 

You can have a look in app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php where the Mapping is done:

public function addFieldToFilter($attribute, $condition = null) {
    return $this->addAttributeToFilter($attribute, $condition);
}

 

addAttributeToSelect() : addAttributeToSelect() is used to filter the attributes fromthe magento database

$collections = Mage::getModel('catalog/product')
       ->getCollection()
       ->addAttributeToSelect(array('name', 'price','sku'));
	   
//If we use addAttributeToSelect('*'), then all product attributes will be loaded.

 

addAttributeToFilter : addAttributeToFilter() is used to filter EAV collections in Magento,and filter the products based on the attributes that you have included in your collection.

 

addAttributeToFilter add a condition to the WHERE part of the MySQL query, used to extract a product collection from the database using specified condition.

$collections = Mage::getModel('catalog/product')
       ->getCollection()
       ->addAttributeToSelect(array('name', 'price','sku'))
	   ->addAttributeToFilter('sku', array('like' => '%AM%'))
       ->load();

 

The above code would get a product collection, with each product having it’s name, price AND sku. The product collection would be filtered and contain only products that have an SKU WITH with AM.
If we use addAttributeToSelect(‘*’), then all product attributes will be loaded.

 

addFieldToFilter : addFieldToFilter will filter the products based on columns in the database from the table catalog_product_entity. and used for flat model.it is defined in Mage_Core_Model_Resource_Db_Collection_Abstract class so it is available in all its child classes.

$collection = Mage::getModel('news/post')->getCollection();
$collection->addFieldToFilter('file_id',3);
$collection->addFieldToFilter('list_id',array('in'=>array(1,2,3)));

 

 

更多参考:

  1. Magento模型集合addFieldToFilter常用过滤条件
  2. difference between addAttributeToSelect(), addAttributeToFilter() and addFieldToFilter() methods
  3. Magento Collection Filtering functions

 

原文/转自: Magento: addAttributeToFilter 和 addFieldToFilter 的区别 Difference between addAttributeToFilter and addFieldToFilter

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Magento: 后台添加预览按钮 View product in frontend from Magento admin

    Magento是一款强大的开源电子商务平台,以其高度可定制性和灵活性著称。在Magento的后台管理系统中,管理员可以进行商品的创建、编辑、管理等操作。然而,原生的Magento系统并未提供直接在后台预览商品前端展示效果...

    Magento: Beginner's Guide ([Packt]出品 Magento新手指南)

    ### Magento新手指南知识点详解 #### 一、Magento简介与特性 **Magento**是一款功能强大的开源电子商务平台,由Varien公司(后被Adobe收购)于2008年首次发布。它以其灵活性、可扩展性和丰富的功能集而闻名,是...

    Magento:适用于Dropday的Magento扩展

    通过SFTP或SSH导航到Magento [Magento]/app/code/ 。 上载带有扩展名的Dropday/OrderAutomation目录。 打开终端并导航到Magento根目录。 运行以下命令以启用Dropday扩展: php bin/magento module:enable Dropday_...

    magento2-integration

    Magento:registered:2数据集成借助Datatric Connect扩展程序,可以轻松地将Magento:registered:2商店与Datatrics平台连接起来。安装在开始安装过程之前,我们建议您对webshop文件以及数据库进行备份。 有两种安装...

    The Definitive Guide to Magento (Apress出品 Magento权威指南)

    此外,还探讨了Magento与其他电子商务平台的区别以及其优势所在。 - **第2章:环境搭建与安装** 在这一章节中,作者详细指导读者如何搭建Magento开发环境并完成软件的安装过程。包括选择合适的服务器、配置数据库...

    magento:Magento的免费PWA和SPA

    Magento通过最佳的电子商务平台和灵活的云解决方案为成千上万的零售商和品牌提供支持,以实现快速创新和发展。 CMS Connect App-通过GraphQL API在Magento CMS和VueFront Web App之间添加连接。它有什么作用? 这是...

    docker-magento:Mark Shust的Magento Docker配置

    docker-magento:Mark Shust的Magento Docker配置

    ansible-magento:ansible置备的magento商店

    ansible-magento要求: -流浪汉-可以指示: 克隆此仓库无所事事在浏览器中导航到magento.dev。MySQL 数据库:magento 用户名:magento 密码:password123 这是基于的工作而进行的一些更改,以简化启动和运行过程...

    magento:megento电子商务网站

    magento:megento电子商务网站

    magento:Magento片段

    总的来说,Magento是一个功能强大的电子商务平台,其丰富的API和插件生态系统为开发者提供了广阔的空间来实现创新和定制。深入了解和熟练掌握Magento的片段及其相关概念,将有助于你构建高质量的在线商店。

    magento:Magento 2

    Magento 2 是一款开源的电子商务平台,用于构建和管理在线商店。它由Adobe公司拥有,是Magento 1的升级版本,提供了许多改进的功能和性能优化。Magento 2 的设计目标是提供一个高度可定制、功能丰富的电商解决方案,...

    magento:Magento 与 Apache OFBiz 集成,兼容 OFBiz-13.07 和主干

    Magento 与 Apache OFBiz 集成,兼容 OFBiz-13.07 和主干 在 Apache OFBiz-13.07 和 OFBiz 主干中使用磁电机组件的步骤 启动终端并进入 Apache OFBiz 的主目录 在热部署文件夹中签出 magento 组件 使用命令加载数据...

    magento:Puglin Magento

    MódulodeIntegraçãocom市场 Compatívelcom a ... 内华达州立电视台(Nesta telaépossívelhabilitar omóduloMHub em sua loja)和市场营销部(Fornecedor)。 没有Modo市场,可以在Epicom上生产产品,也可以

    magento:magento-ce 2.4.0

    - Magento 2.4.0 强化了安全防护,包括对 SQL 注入、XSS 攻击的防御,以及增强了密码策略和支付网关的加密。 - 集成了 PCI DSS(Payment Card Industry Data Security Standard)合规性,确保处理信用卡交易的安全...

    流浪者-magento:**已弃用**

    流浪者-magento:**已弃用**

    magento:Gimmie Magento 模块

    为 Magento 添加 Gimmie 奖励,让用户在购买和推荐朋友时获得积分并获得真正的奖励。 要安装此插件,我们提供。 建造 克隆此插件所需的所有子模块(gimmie php 项目) $git submodule init && git submodule ...

    clean-magento:测试技能magento 2

    Magento 2 是一款开源的电子商务平台,用于构建和管理在线商店。它提供了强大的功能和高度的可定制性,使得商家可以灵活地设计和运营他们的网上业务。"clean-magento: 测试技能magento 2" 的标题暗示我们将讨论的是...

    magento:magento 项目

    马恩托 magento 项目

    trytond-magento:笔记

    导入和导出:用户可以导入目录,类别和产品以及客户的信息和地址。 Magento Tryton连接器会导入每个订单状态,包括已取消的订单。 其他导入的订单正在等待,排队,开始,完成或失败。 如果连接器较早不存在,该连接...

    python-magento:使用Python API访问magento API

    Magento Python API 用于连接到Magento Web服务的Python库。 用法 import magento url = 'http://domain.com/' apiuser = 'user' apipass = 'password' # Create an instance of API client = magento . API ( url ...

Global site tag (gtag.js) - Google Analytics