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?

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


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.

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.