Magento 2: orden de clasificación y límite de recolección de productos


16

Necesito ordenar la colección de productos por orden de ID DESC y agregar límite a la colección de productos. Aquí está mi código:

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

Respuestas:


31

Simplemente agregue este código addAttributeToSort('entity_id', 'desc')a su colección.

Como el producto sigue la estructura EAV, puede usar addAttributeToSort('attribute_code', 'sort_order')

Para limitar el uso setPageSize()y los setCurPage()métodos de una colección :

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

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

1
No has respondido la parte límite.
Hashid

@Hashid actualizó la respuesta.
Roman Snitko

¡Excelente! Esto también solucionó un problema al tener 2 bloques de colección en una página, uno de ellos paginación, que rompió la otra colección que no estaba destinada a ser paginación. El 'setCurPage' en este último solucionó este 🥳
00-BBB

setPageSize no funciona para mí
Sagar Parikh SGR
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.