Magento2 Orden por cláusula en colección
-
29-09-2020 - |
Pregunta
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 campo? posición en orden ASC?
Solución
puedes probar esto
$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position','ASC');
setOrder
se usa para clasificar
Otros consejos
De acuerdo a \Magento\Catalog\Model\ResourceModel\Product\Collection
puedes usar addAttributeToSort()
método para ordenar su colección.
Esto me ha funcionado:
$collection = $this->_collection ->create() ->addAttributeToSelect(['sku', 'name', 'image']) ->addCategoryFilter($category) ->addAttributeToSort('name') ->setPageSize($limit); return $collection;
Utilice 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 segundo parámetro; el valor predeterminado es ASC
.
Intenta esto,
$page = ($this->getRequest()->getParam('p')) ? $this->getRequest()->getParam('p') : 1;
$pageSize = 10;
$allMagazines = $this->MagazineFactory->create()->getCollection();
$allMagazines->addFieldToFilter('is_enable', 1);
$allMagazines->setOrder('sort_order','ASC');
$allMagazines->setPageSize($pageSize);
$allMagazines->setCurPage($page);
return $allMagazines;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange