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 это использовать для сортировки


2

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.