本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
集合是一个包含其他型号的机种型号,它基本上是用在Magento处理的产品清单(即从类别或捆绑选项),但不是唯一的。 TO DO:解释如何Magento的实现集合 – 使用此解释如何Magento的实现代码模型中的一个集合,使人们可以学会写自己的藏品 这是一个简单的例子,加载一些产品集合从一个类别,并命令他们在自己的产品名称使用Magento的API的。 - $collection = Mage::getModel('catalog/category')->load($categoryId)
- ->getProductCollection()
- ->addAttributeToSort('name', 'ASC');
复制代码使用多个字段排序,您可以调用链接到该集合的方法 addAttributeToSort(preferred) - $collection = Mage::getModel('module/model_name')->getCollection()
- ->addAttributeToSort('order', 'ASC')
- ->addAttributeToSort('last_name', 'ASC')
- ->addAttributeToSort('first_name', 'ASC')
复制代码TODO:使用Magento的API使用的情况下,不是Zend_Db_Select的。 您也可以通过IF/THEN语句,但一定要使用正确引用表的字段。 - $collection = Mage::getModel('module/model_name')->getCollection();
- $collection->getSelect()->order( array('IF(`order`>0, `order`, 9999) ASC',
- 'last_name ASC', 'first_name ASC') );
复制代码在此示例中,将按顺序字段,排序表然后按上次的名称,然后按名字、 凡订单是否大于零,是秩序正在小于或等于零,所有升序。 联接表 若要添加 SQL 联接到选择 - $collection = Mage::getModel('module/model_name')->getCollection();
- $collection->getSelect()->join( array('table_alias'=>$this->getTable('module/table_name')), 'main_table.foreign_id = table_alias.primary_key', array('table_alias.*'), 'schema_name_if_different');
复制代码在此示例中的联接方法采用 alias⇒table_name 密钥对,然后使用 main_table 引用原始的选择中,标准的 join 子句的数组然后在联接中要检索的字段的数组 (默认为 *),可以作为最后一个参数指定不同的架构。 复审 → 默认为内部联接,其他人可以使用: →joinInner() →joinLeft() →joinRight() →joinFull() →joinCross() →joinNatural() 请参阅 lib/Zend/Db/Select.php 的源码。 集合操作方法Varien_Data_Collection
Varien/Data/Collection.php
Varien_Data_Collection_Db
Varien/Data/Collection/Db.php
继承Varien_Data_Collection,除了上面的方法(重新)定义如下:
筛选器的条件代码
如果传递的数组,但没有属性代码指定,它将被解释为一组 OR 条件将在相同的方式进行处理。 如果不指定了任何属性代码,则其默认值为不等。
例如: - $collection->addAttributeToFilter('field_name', array(
- 'in' => array(1, 2, 3),
- ));
- $collection->addAttributeToFilter('date_field', array(
- 'from' => '2000-09-10',
- ));
- $collection->addAttributeToFilter('date_field', array(
- 'from' => '10 September 2000',
- 'to' => '11 September 2000',
- 'date' => true, // specifies conversion of comparison values
- ));
- $collection->addAttributeToFilter('field_name', array(
- 'notnull' => true,
- ));
- $collection->addAttributeToFilter('field_name', 1); // tests for equality
- // Add OR condition:
- $collection->addAttributeToFilter(array(
- array(
- 'attribute' => 'field_name',
- 'in' => array(1, 2, 3),
- ),
- array(
- 'attribute' => 'date_field',
- 'from' => '2000-09-10',
- ),
- ));
复制代码Mage_Eav_Model_Entity_Collection
Mage/Eav/Model/Entity/Collection/Abstract.php
继承上述方法Varien_Data_Collection_Db,除了(重新)定义了以下:
|