Magento2 Ordenar por cláusula na coleção

13

Eu tenho uma coleção personalizada à qual adiciono filtros. Por exemplo, eu tenho isso:

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

Que filtro devo adicionar ao $ giftColletion para que ele possa retornar todos os registros por posição de campo no pedido ASC?

Lachezar Raychev
fonte

Respostas:

36

Você pode tentar isso

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

setOrder é usado para classificação

ND17
fonte
2

De acordo com \Magento\Catalog\Model\ResourceModel\Product\Collectionvocê, você pode usar o addAttributeToSort()método para classificar sua coleção.

Isso tem funcionado para mim:

$ collection = $ this -> _ coleção
    -> criar ()
    -> addAttributeToSelect (['sku', 'nome', 'imagem'])
    -> addCategoryFilter ($ category)
    -> addAttributeToSort ('nome')
    -> setPageSize ($ limit);
retornar $ coleção;

Use qualquer atributo pelo qual você precise que sua coleção seja classificada em vez de 'name'no meu exemplo. Você também pode especificar a direção do pedido como o segundo parâmetro, como padrão ASC.

Zankar
fonte