Magento2 Ordenar por cláusula en colección

13

Tengo una colección personalizada a la que agrego filtros. Por ejemplo, tengo esto:

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

¿Qué filtro debo agregar a $ giftColletion para que pueda devolver todos los registros por posición de campo en orden ASC?

Lachezar Raychev
fuente

Respuestas:

36

Puedes probar esto

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

setOrder se usa para ordenar

ND17
fuente
2

Según \Magento\Catalog\Model\ResourceModel\Product\Collectionusted puede usar el addAttributeToSort()método para ordenar su colección.

Esto me ha funcionado:

$ colección = $ this -> _ colección
    -> crear ()
    -> addAttributeToSelect (['sku', 'nombre', 'imagen'])
    -> addCategoryFilter ($ categoría)
    -> addAttributeToSort ('nombre')
    -> setPageSize ($ límite);
devolver $ colección;

Use cualquier atributo por el que necesite ordenar su colección en lugar de 'name'en mi ejemplo. También puede especificar la dirección del pedido como el segundo parámetro, por defecto ASC.

Zankar
fuente