Magento 2: เรียงลำดับและ จำกัด การรวบรวมผลิตภัณฑ์


16

ฉันต้องการเรียงลำดับการรวบรวมผลิตภัณฑ์ตามคำสั่ง ID 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

@Hashid อัปเดตคำตอบ
Roman Snitko

ที่ดี! นอกจากนี้ยังแก้ไขปัญหาเมื่อมีการรวบรวม 2 บล็อกบนหน้าหนึ่งซึ่งเป็นเพจจิ้งหนึ่งซึ่งแบ่งคอลเล็กชันอื่นที่ไม่ได้หมายถึงเพจจิ้ง 'setCurPage' ที่อยู่หลังแก้ไขค่านี้🥳
00-BBB

setPageSize ไม่ทำงานสำหรับฉัน
Sagar Parikh SGR
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.