Domanda

Ho una raccolta personalizzata a cui aggiungo filtri.Ad esempio, ho questo:

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

Quale filtro dovrei aggiungere a $ Giftcolletion in modo da poter restituire tutti i record per campo Posizione in ordine ASC?

È stato utile?

Soluzione

Puoi provare questo

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

setOrder è l'uso per l'ordinamento

Altri suggerimenti

Secondo \Magento\Catalog\Model\ResourceModel\Product\Collection è possibile utilizzare il metodo addAttributeToSort() per ordinare la tua collezione.

Questo ha funzionato per me:

$collection = $this->_collection
    ->create()
    ->addAttributeToSelect(['sku', 'name', 'image'])
    ->addCategoryFilter($category)
    ->addAttributeToSort('name')
    ->setPageSize($limit);
return $collection;
.

Usa qualunque attributo Hai bisogno della tua raccolta da ordinare invece di 'name' nel mio esempio. È inoltre possibile specificare la direzione dell'ordine come il secondo parametro, valori predefiniti su ASC.

Prova questo,

$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;
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top