Magento 2: Sortuj porządek i ogranicz kolekcję produktów


16

Muszę posortować kolekcję produktów według zamówienia IDC DESC i dodać limit do kolekcji produktów. Oto mój kod:

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

Odpowiedzi:


31

Po prostu dodaj ten kod addAttributeToSort('entity_id', 'desc')do swojej kolekcji.

Ponieważ produkt jest zgodny ze strukturą EAV, możesz używać addAttributeToSort('attribute_code', 'sort_order')

Aby ograniczyć użycie setPageSize()i setCurPage()metody kolekcji :

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

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

1
Nie odpowiedziałeś na część dotyczącą limitu.
Hashid

@Hashid zaktualizował odpowiedź.
Roman Snitko,

Świetny! To również rozwiązało problem z posiadaniem 2 bloków kolekcji na stronie, z których jeden stronicował, co powodowało uszkodzenie drugiej kolekcji, która nie miała być stronicowaniem. „SetCurPage” w tym drugim rozwiązał ten 🥳
00-BBB

setPageSize nie działa dla mnie
Sagar Parikh SGR
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.