MAGENTO产品集合

Magento数据收集是magento开发中非常重要的因素,我们计划在此Blog上写更多数据收集文章,但是今天我们将仅涵盖产品数据收集。我们将介绍很少的示例,以帮助您了解Magento中产品数据收集的工作方式。

什么是数据收集?简而言之,数据收集就像选择查询以从数据库中获取数据一样。

让我们从非常基本的产品模型数据收集开始。

要从数据库中获取所有产品,您可以运行以下代码-:

$collection = Mage::getResourceModel('catalog/product_collection');

要么

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

上面应该给你基本属性-

  • 实体编号
  • 属性集
  • 类型编号
  • 能见度
  • 可销售

而且,如果您想获取集合中的更多信息或列,则可以使用addAttributeToSelect($ attribute,$ joinType = false)函数获取更多数据。让我们来看几个例子-

$collection = Mage::getResourceModel('catalog/product_collection')
                        ->addAttributeToSelect('name')
                        ->addAttributeToSelect('sku')
                        ->addAttributeToSelect('description')
                        ->addAttributeToSelect('price');

上面的收藏将获得基本信息以及名称,SKU,描述和价格。当您要获取集合中的特定属性而不是所有或基本信息时,应使用此属性。

如果要获取集合中的所有产品属性,则可以执行以下操作:

$collection = Mage::getResourceModel('catalog/product_collection')
                        ->addAttributeToSelect('*');

现在,我们学习了如何使用集合运行选择查询,让我们看看如何使用集合向我们的选择查询添加过滤器或where子句。

要将过滤器添加到集合,我们具有addAttributeToFilter($ attribute,$ condition = null,$ joinType ='inner')addFieldToFilter( $ attribute,$ condition = null 函数。让我们看看如何将它们用于我们的收藏中。

在下面的示例中,我们将获得所有产品类型为 -的产品:

$collection = Mage::getResourceModel('catalog/product_collection')
  ->addAttributeToFilter('type_id',
     Mage_Catalog_Model_Product_Type::DEFAULT_TYPE);

相当于

where type_id='simple'

在以下示例中,我们将获得所有产品类型简单可见性是目录搜索的产品 -:

$collection = Mage::getResourceModel('catalog/product_collection')
  ->addAttributeToFilter('type_id',
     Mage_Catalog_Model_Product_Type::DEFAULT_TYPE)
  ->addAttributeToFilter('visibility',
     Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH);

相当于

where type_id='simple' and visibility=4

在以下示例中,我们将获得所有产品类型为简单或可配置的产品 -

$collection = Mage::getResourceModel('catalog/product_collection')
  ->addAttributeToFilter('type_id', array(
    Mage_Catalog_Model_Product_Type::DEFAULT_TYPE,
    Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE
    ));

相当于

where type_id='simple' or type_id='configurable'

以下是可在addAttributeToFilter函数中使用的其他过滤器的列表-:

  • eq(=)
  • neq(!=)
  • 喜欢(喜欢)
  • nlike(不喜欢)
  • 在(在)
  • 宁(不在)
  • finset(find_in_set)
  • 伊斯兰国)
  • notnull(不为null)
  • 空(为空)
  • moreq(> =)
  • gt(>)
  • lt(<)
  • gteq(> =)
  • lteq(<=)
  • 从(> =)–仅适用于日期
  • 到(<=)–仅适用于日期

我们已经讨论过选择查询和过滤器。现在,我们将讨论如何对结果集进行排序。不用担心,我们也有称为addAttributeToSort( $ attribute,$ dir ='asc' )的函数。

让我们看看如何在集合中使用此功能

在以下示例中,我们将获得所有产品,这些产品的产品类型都很简单,并且结果集将按名称-排序:

$collection = Mage::getResourceModel('catalog/product_collection')
  ->addAttributeToFilter('type_id',
     Mage_Catalog_Model_Product_Type::DEFAULT_TYPE);
  ->addAttributeToSort('name', 'ASC');

相当于

where type_id='simple' order by name

在下面的示例中,我们将获得所有产品,这些产品的产品类型都很简单,并且结果集将按类型升序排序,然后按名称降序排序:

$collection = Mage::getResourceModel('catalog/product_collection')
  ->addAttributeToFilter('type_id',
     Mage_Catalog_Model_Product_Type::DEFAULT_TYPE);
  ->addAttributeToSort('type', 'ASC');
  ->addAttributeToSort('name', 'DESC');

相当于

where type_id='simple' order by type, name desc

希望本文对您有所帮助。请留下您的评论,让我们知道您的想法?

赞(0)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论