Magento 2: порядок сортировки и ограничение коллекции продуктов


16

Мне нужно отсортировать коллекцию товаров по идентификатору заказа DESC и добавить лимит в коллекцию товаров. Вот мой код:

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

Ответы:


31

Просто добавьте этот код addAttributeToSort('entity_id', 'desc')в вашу коллекцию.

Поскольку продукт соответствует структуре EAV, вы можете использовать addAttributeToSort('attribute_code', 'sort_order')

Для ограничения использования коллекции setPageSize()и setCurPage()методов:

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

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

1
Вы не ответили на лимитную часть.
Хашид

@Hashid обновил ответ.
Роман Снитко

Большой! Это также устранило проблему, когда на странице было 2 блока коллекций, один из которых был подкачкой, что нарушало работу другой коллекции, которая не предназначена для подкачки. 'SetCurPage' на последнем исправил это 🥳
00-BBB

setPageSize у меня не работает
Сагар Парих СГР
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.