Magento2 Sortuj według klauzuli w kolekcji

13

Mam własną kolekcję, do której dodaję filtry. Na przykład mam to:

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);

Jaki filtr powinienem dodać do $ giftColletion, aby mógł zwrócić wszystkie rekordy według pozycji pola w kolejności ASC?

Lachezar Raychev
źródło

Odpowiedzi:

36

Możesz tego spróbować

$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position','ASC');

setOrder służy do sortowania

ND17
źródło
2

Według \Magento\Catalog\Model\ResourceModel\Product\Collectionciebie możesz użyć addAttributeToSort()metody sortowania swojej kolekcji.

To zadziałało dla mnie:

$ collection = $ this -> _ collection
    -> create ()
    -> addAttributeToSelect ([„sku”, „name”, „image”])
    -> addCategoryFilter (kategoria $)
    -> addAttributeToSort („nazwa”)
    -> setPageSize ($ limit);
zwrot $ kolekcja;

Użyj dowolnego atrybutu, według którego chcesz posortować kolekcję, zamiast 'name'w moim przykładzie. Możesz również określić kierunek zamówienia jako drugi parametr, domyślnie jest to ASC.

Zankar
źródło