Magento2 ordina per clausola nella collezione
-
29-09-2020 - |
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?
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