Wednesday 31 October 2012

Magento: Very Useful Collection Functions

/**
 * Get Zend_Db_Select instance
 */
$collection->getSelect();
 
/**
 * Get collection size
 */
$collection->getSelect()->getSize();
 
/**
 * Get sql select string or object
 */
$collection->getSelect()->getSelectSql();
 
/**
 * Add select order
 */
$collection->getSelect()->setOrder($field, $direction);
 
/**
 * Add field filter to collection
 *
 * If $attribute is an array will add OR condition with following format:
 * array(
 *     array('attribute'=>'firstname', 'like'=>'test%'),
 *     array('attribute'=>'lastname', 'like'=>'test%'),
 * )
 */
$collection->getSelect()->setOrder($field, $condition);
 
/**
 * Set select distinct
 */
$collection->getSelect()->distinct($flag);
 
/**
 * Get all data array for collection
 */
$collection->getSelect()->getData();
 
/**
 * Reset loaded for collection data array
 */
$collection->getSelect()->resetData();
 
/**
 * Print and/or log query
 */
$collection->getSelect()->printLogQuery(true, true);
More functions below:-
Varien_Data_Collection_Db class extends Varien_Data_Collection class. Here are some more functions present in Varien_Data_Collection class:-
/**
 * Get current collection page
 */
$collection->getSelect()->getCurPage();
 
/**
 * Retrieve collection last page number
 */
$collection->getSelect()->getLastPageNumber();
 
/**
 * Retrieve collection page size
 */
$collection->getSelect()->getPageSize();
 
/**
 * Retrieve collection all items count
 */
$collection->getSelect()->getSize();
 
/**
 * Retrieve collection first item
 */
$collection->getSelect()->getFirstItem();
 
/**
 * Retrieve collection last item
 */
$collection->getSelect()->getLastItem();
 
/**
 * Retrieve collection items
 */
$collection->getSelect()->getItems();
 
/**
 * Clear collection
 */
$collection->getSelect()->clear();
You can also use the select functions as present in Zend_Db_Select class. This class file is present in lib/Zend/Db/Select.php

3 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. This is a great post. I like this topic.This site has lots of advantage. It helps me in many ways.Thanks for posting this again.
    magento development company in bangalore 

    ReplyDelete
  3. Its was important information various people search for the so this blog used to them so I have a typical this post in my electronic long range interpersonal communication pages.thank you for sharing the enormous information.
    Outsource ecommerce website development services
    Affordable ecommerce development services

    ReplyDelete

Note: only a member of this blog may post a comment.