通常我们使用Mage::getModel('catalog/product')->getCollection()能够获取到产品集。
在这个产品集中,只包含了table catalog_product_entity
中的字段,但是很多时候我们都需要更多的字段,比如产品price,qty等;
一般情况下,我们会这样做:
- $collection = Mage::getModel('catalog/product')->getCollection();
-
- $collection->addAttributeToSelect('filedname');//通过验证,此处添加这一行不起作用
-
- foreach($collection->getAllIds() as $id){
-
- $prod= Mage::getModel('catalog/product')->load($id)->getData();//此时的prod包含了EAV模型中的所有属性
-
- }
实际上,上面虽然能获取产品的所有属性,但是在你的product有上万条的时候,就会严重影响性能了。或许你会说用下边的code也可以:
- $collection->addExpressionFieldToSelect('filedname', "{{filedname}}", array('filedname' => 'filedname'));
- $collection->getSelect()->joinLeft('tablename','e.entity_id=`tablename`.entity_id','');
不错,虽然可以得到你想要的属性,但是这仅仅限于系统属性,如qty,因为我们知道qty是存储于table cataloginventory_stock_item中的,但是
magento中又很多自定义属性,是采用EAV模型存储的,所以上面的方法也不可行了。
还好有 joinAttribute joinField这两个function解决了上面的问题。
比如我想将name添加到collection中
- $collection->joinAttribute('name','catalog_product/name', 'entity_id', 'entity_id','left', 0);
就可以了,将qty添加到collection中
- $collection->joinField('qty', 'cataloginventory/stock_item','qty','product_id=entity_id', '{{table}}.stock_id=1','left');
就可以了。
joinAttribute 用来添加EAV模型中的Attribute ,只要在table eav_attribute中能找到的attribute_code都可以在这里使用!
分享到:
相关推荐
3 专业与社群支援不像是其他的开放原始码解决方案, Magento 提供专业、可信赖的支援,您也可以从热情的社群中取得协助,国内也有Magento的爱好者创建中文社区,比如Magentoo.com。4 完整的扩充性无论网站经过了一夜...
4. **模型和 ORM 基础**:介绍了 Magento 如何使用 Entity-Attribute-Value (EAV) 模型存储数据,并展示了如何操作这些模型。 5. **资源配置**:说明了 Magento 中的数据资源管理和数据库操作。 6. **高级模型**:...
2. **EAV模型**:Entity-Attribute-Value(EAV)模型是Magento数据存储的关键特性,允许存储具有动态属性的商品信息。`EAV(E-V图 product为例).png`和`EAV模型.png`可能展示了如何通过EAV结构存储和检索商品数据。 ...
2. 解压下载的文件到 Magento 根目录,确保 "app" 文件夹中的内容被正确放置在对应的位置。例如,"locale" 目录应放在 Magento 根目录的同级目录下,"Mage" 和 "design" 目录则应与 "app" 直接平级。 3. 登录 ...
### Magento中文用户指南知识点概述 #### Magento简介 - **什么是Magento?** - Magento是一款基于开源技术构建的电子商务平台,为在线商家提供了前所未有的灵活性以及对电子商务网站外观、内容和功能的强大控制...
6. 搜索引擎优化(SEO):内置SEO工具,帮助提高网站在搜索引擎中的排名。 三、Magento架构 Magento采用模块化架构,各个功能模块可以独立开发和升级,降低了维护难度。其主要组成部分包括: 1. 模板引擎:控制页面...
像是产品标签、多送货地址或产品比较系统等功能,您不需要支付额外的费用来取得,在现成的 Magento 系统中,您可以发现更多。 3 专业与社群支援 不像是其他的开放原始码解决方案, Magento 提供专业、可信赖的支援...
2. **Magento插件开发**:在Magento中,插件(也称为扩展)用于增强或改变系统功能。学习如何创建、注册和配置插件,包括编写前置/后置操作、重写类和定义插件接口。 3. **模块开发**:掌握创建新模块的步骤,包括...
Magento 2的Dmatthew_AttributeDescription模块这是一个Magento 2模块,它增加了向产品属性添加描述的功能。 将描述添加到可配置属性,并将其显示在您的产品视图页面上。 使用属性描述可以帮助向客户解释复杂的属性...
标题中的"magento1.6.1简体中文语言包最新"表明这是一个专为Magento 1.6.1版本设计的中文语言包,旨在帮助中国用户或面向中国市场的企业更好地理解和操作Magento系统。 在描述中,只提到了"magento1.6.1简体中文...
SEO优化也是Magento的核心优势之一,提供友好的URL结构、元标签管理,有助于提高网站在搜索引擎中的排名。 在结账流程上,Magento提供多种付款和运输选项,包括集成PayPal等支付方式,并支持税收设置和配送策略的...
本文档提供了创建和 Magento的应用程序进行安装定制的店面主题的说明。它描述 Magento的内容呈现过 程,并说明该系统的对有效地建立一个主题要求的范围内的观点层。该文件还走过日常前端开发人员的任 务。
Magento是一款强大的开源电子商务平台,专为在线商家设计,提供丰富的功能和高度的可定制性。本教程将深入探讨Magento的使用、配置以及开发实践,帮助读者掌握这一强大的系统。 一、Magento的基础架构与安装 ...
在Magento中,中文语言包的引入对于在中国市场运营的商家至关重要,它能帮助商家为中文用户提供建立在他们母语基础上的购物体验,从而提高用户满意度和销售额。 标题“Magento 中文语言包(适用1.6以上)”指的是这个...
magento最新版中文语言包 Magento (麦进斗) 是一套专业开源的电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。其面向企业级应用,可处理各方面的需求,...
在Magento 1.6中,以下几个关键领域得到了显著增强: 1. **性能优化**:Magento 1.6对数据库查询进行了优化,提高了页面加载速度,降低了服务器资源消耗,提升了购物体验。 2. **订单处理**:引入了多地址配送功能...
标签中,"Magento语言"、"Magento中文"、"Magento繁体"、"Magento汉化"和"Magento-ZH"进一步强调了这个资源是针对Magento的中文本地化工作,涵盖了简体和繁体的汉化内容。"Magento-ZH"通常用来表示Magento的中文版本...
此外,由于Magento系统的复杂性,汉化过程中必须确保所有功能的正常运行,避免因翻译导致的系统兼容性问题。 使用这个汉化包,香港商家不仅可以更便捷地管理他们的在线商店,还能享受到Magento 1.7带来的各种优势,...
- 引入了多店模式,允许在一个Magento实例中管理多个独立的在线商店。 总的来说,"magento1.7.0.0中文包"是针对中国市场的关键组件,它使得不懂英文的用户也能轻松地使用Magento进行电商运营。安装和使用这个中文包...