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?

¿Fue útil?

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
scroll top