it-swarm.com.de

Magento: Setze LIMIT auf Sammlung

Die Frage, die ich herausfinden wollte, war, wie wir ein Limit für eine Sammlung festlegen. Die Antworten, die ich bei Google gefunden habe, waren nur für den Katalog mit einer setPage ($ pageNum, $ pageSize) verfügbar. Das hat bei keiner anderen Sammlung geklappt.
Siehe die Antwort unten.

37
Shadowbob

Hierfür gibt es verschiedene Möglichkeiten:

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

Erhält die ersten 20 Datensätze.

Hier ist die alternative und vielleicht besser lesbare Art:

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

Dies ruft das Zend Db Limit auf. Sie können den Offset als zweiten Parameter einstellen.

118
freento

Der Weg, dies zu tun, bestand darin, den Code in code/core/Mage/Catalog/Model/Resource/Category/Flat/Collection.php In Zeile 380 in Magento 1.7.2 für die Funktion setPage($pageNum, $pageSize) zu betrachten.

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

Ich hoffe das hilft jemandem.

11
Shadowbob

Bestellungslimit:

$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; 
4

Sie können dies auch implementieren: - setPage (1, n); wobei n eine beliebige Zahl ist.

$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);
1
Vishal Thakur