Magento 2: Sortierreihenfolge und Einschränkung der Produktsammlung


16

Ich muss die Produktkollektion nach ID-Reihenfolge DESC sortieren und die Produktkollektion einschränken. Hier ist mein Code:

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

Antworten:


31

Fügen Sie einfach diesen Code addAttributeToSort('entity_id', 'desc')Ihrer Sammlung hinzu.

Da das Produkt der EAV-Struktur folgt, können Sie verwenden addAttributeToSort('attribute_code', 'sort_order')

Um die Verwendung setPageSize()und setCurPage()Methoden einer Sammlung einzuschränken :

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

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

1
Sie haben den Limit-Teil nicht beantwortet.
Hashid

@Hashid hat die Antwort aktualisiert.
Roman Snitko

Groß! Dies behebt auch ein Problem, wenn auf einer Seite zwei Sammlungsblöcke vorhanden sind, von denen einer das Blättern unterstützt und die andere Sammlung zerstört hat, die nicht für das Blättern gedacht war. Die 'setCurPage' auf der letzteren hat diese 🥳
00-BBB

setPageSize funktioniert nicht bei mir
Sagar Parikh SGR
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.