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?

Respostas:


36

Você pode tentar isso

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

setOrder é usado para classificação


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.