Magento2 Сортировать по пункту в коллекции

13

У меня есть пользовательская коллекция, в которую я добавляю фильтры. Например, у меня есть это:

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

Какой фильтр я должен добавить к $ giftColletion, чтобы он мог возвращать все записи по положению поля в порядке ASC?

Лачезар Райчев
источник

Ответы:

36

Вы можете попробовать это

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

setOrder это использовать для сортировки

ND17
источник
2

По словам \Magento\Catalog\Model\ResourceModel\Product\Collectionвы можете использовать addAttributeToSort()метод для сортировки вашей коллекции.

Это сработало для меня:

$ collection = $ this -> _ collection
    -> создать ()
    -> addAttributeToSelect (['sku', 'name', 'image'])
    -> addCategoryFilter ($ категории)
    -> addAttributeToSort ( 'имя')
    -> setPageSize ($ предел);
вернуть $ collection;

Используйте любой атрибут, который вам нужен для сортировки вашей коллекции, а не 'name'в моем примере. Вы также можете указать направление заказа в качестве второго параметра, по умолчанию ASC.

Zankar
источник