Magento:设置集合的限制

我试图找出的问题是如何设置限制集合,我在Google上find的答案仅适用于带有setPage($ pageNum,$ pageSize)的Catalog。 这不适用于任何其他collections。
请参阅下面的答案。

做这件事有很多种方法:

$collection = Mage::getModel('...') ->getCollection() ->setPageSize(20) ->setCurPage(1); 

将获得前20个logging。

这是另一种可能的方式:

 $collection = Mage::getModel('...')->getCollection(); $collection->getSelect()->limit(20); 

这将调用Zend Db限制。 您可以将偏移量设置为第二个参数。

要做的是在函数setPage($pageNum, $pageSize) Magento 1.7.2中第380行的code/core/Mage/Catalog/Model/Resource/Category/Flat/Collection.php中的setPage($pageNum, $pageSize)

  $collection = Mage::getModel('model') ->getCollection() ->setCurPage(2) // 2nd page ->setPageSize(10); // 10 elements per pages 

我希望这会帮助别人。

订单收集限制:

 $orderCollection = Mage::getResourceModel('sales/order_collection'); $orderCollection->getSelect()->limit(10); $orderModel = Mage::getModel('sales/order'); foreach ($orderCollection->getItems() as $order) : $order = $orderModel->load($order['entity_id']); echo $order->getId().'<br>'; endforeach; 

你也可以实现这个: – setPage(1,n); 其中,n =任何数字。

 $products = Mage::getResourceModel('catalog/product_collection') ->addAttributeToSelect('*') ->addAttributeToSelect(array('name', 'price', 'small_image')) ->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) //visible only catalog & searchable product ->addAttributeToFilter('status', 1) // enabled ->setStoreId($storeId) ->setOrder('created_at', 'desc') ->setPage(1, 6);