Magento 2: ordina e limita la raccolta dei prodotti


16

Devo ordinare la raccolta prodotti per ID ordine DESC e aggiungere un limite alla raccolta prodotti. Ecco il mio codice:

$objectManager     = \Magento\Framework\App\ObjectManager::getInstance();
$productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\CollectionFactory');
$collection        = $productCollection->create()
    ->addAttributeToSelect('*')
    ->load();

Risposte:


31

Aggiungi questo codice addAttributeToSort('entity_id', 'desc')alla tua raccolta.

Poiché il prodotto segue la struttura EAV, è possibile utilizzare addAttributeToSort('attribute_code', 'sort_order')

Per limitare l'uso setPageSize()e i setCurPage()metodi di una raccolta :

$collection = $productCollection->create()
    ->addAttributeToSelect('*');

$collection 
    ->setPageSize(10) // only get 10 products 
    ->setCurPage(1)  // first page (means limit 0,10)
    ->load(); 

1
Non hai risposto alla parte limite.
Hashid,

@Hashid ha aggiornato la risposta.
Roman Snitko,

Grande! Ciò ha anche risolto un problema quando si avevano 2 blocchi di raccolta su una pagina, uno dei quali cercava il paging, che interrompeva l'altra raccolta che non doveva essere cercapersone. Il 'setCurPage' su quest'ultimo ha risolto questo 🥳
00-BBB il

setPageSize non funziona per me
Sagar Parikh SGR il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.