Magento 2: Sắp xếp thứ tự và giới hạn bộ sưu tập sản phẩm


16

Tôi cần sắp xếp bộ sưu tập sản phẩm theo thứ tự ID DESC và thêm giới hạn cho bộ sưu tập sản phẩm. Đây là mã của tôi:

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

Câu trả lời:


31

Chỉ cần thêm mã này addAttributeToSort('entity_id', 'desc')vào bộ sưu tập của bạn.

Vì sản phẩm tuân theo cấu trúc EAV, bạn có thể sử dụng addAttributeToSort('attribute_code', 'sort_order')

Để giới hạn việc sử dụng bộ sưu tập setPageSize()setCurPage()phương pháp:

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

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

1
Bạn chưa trả lời phần giới hạn.
Hashid

@Hashid cập nhật câu trả lời.
Roman Snitko

Tuyệt quá! Điều này cũng khắc phục sự cố khi có 2 khối bộ sưu tập trên một trang, một trong số chúng phân trang, đã phá vỡ bộ sưu tập khác không có nghĩa là phân trang. 'SetCurPage' ở phần sau đã sửa lỗi này
00

setPageSize không hoạt động với tôi
Sagar Parikh SGR
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.