Magento:在收集上设置LIMIT

Sha*_*bob 37 collections magento

我试图找出的问题是我们如何设置限制集合,我在Google上找到的答案仅适用于带有setPage的目录($ pageNum,$ pageSize).这不适用于任何其他收藏品.
请参阅以下答案.

fre*_*nto 120

做这件事有很多种方法:

$collection = Mage::getModel('...')
            ->getCollection()
            ->setPageSize(20)
            ->setCurPage(1);
Run Code Online (Sandbox Code Playgroud)

将获得前20条记录.

这是替代方案,可能更具可读性:

$collection = Mage::getModel('...')->getCollection();
$collection->getSelect()->limit(20);
Run Code Online (Sandbox Code Playgroud)

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


Sha*_*bob 11

要做的是查看code/core/Mage/Catalog/Model/Resource/Category/Flat/Collection.phpMagento 1.7.2中关于该函数的第380行中的代码setPage($pageNum, $pageSize)

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

我希望这会对某人有所帮助.


Isr*_*imu 5

订单领取限额:

$orderCollection = Mage::getResourceModel('sales/order_collection'); 
$orderCollection->getSelect()->limit(10);

foreach ($orderCollection->getItems() as $order) :
   $orderModel = Mage::getModel('sales/order');
   $order =   $orderModel->load($order['entity_id']);
   echo $order->getId().'<br>'; 
endforeach; 
Run Code Online (Sandbox Code Playgroud)

  • 您的示例正在运行,但从未使用 foreach 从集合中加载单个实体。这就是集合的用途!因此,最好删除 foreach 中的前两行……它会正常工作,但速度更快且更具可扩展性! (2认同)