38

私が見つけようとした質問は、コレクションに制限を設定する方法でした。Googleで見つけた回答は、setPage($ pageNum、$ pageSize)のカタログでのみ利用可能でした。それは他のコレクションでは機能しませんでした。
以下の答えを参照してください。

4

4 に答える 4

122

これを行うにはいくつかの方法があります。

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

最初の20レコードを取得します。

これが代替の、そしておそらくもっと読みやすい方法です:

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

これにより、ZendDb制限が呼び出されます。2番目のパラメータとしてオフセットを設定できます。

于 2013-01-14T17:01:47.883 に答える
13

code/core/Mage/Catalog/Model/Resource/Category/Flat/Collection.phpその方法は、関数のMagento1.7.2の380行目のコードを確認することでした。setPage($pageNum, $pageSize)

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

これが誰かに役立つことを願っています。

于 2013-01-14T16:21:17.110 に答える
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; 
于 2016-05-26T07:38:02.087 に答える