Question

J'ai une collection personnalisée à laquelle j'ajoute des filtres.Par exemple, j'ai ceci :

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

Quel filtre dois-je ajouter à $giftColletion pour qu'il puisse renvoyer tous les enregistrements par champ position dans l'ordre ASC ?

Était-ce utile?

La solution

Tu peux essayer ça

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

setOrder est utilisé pour le tri

Autres conseils

Selon \Magento\Catalog\Model\ResourceModel\Product\Collection vous pouvez utiliser addAttributeToSort() méthode pour trier votre collection.

Cela a fonctionné pour moi :

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

Utilisez n'importe quel attribut par lequel vous souhaitez que votre collection soit triée au lieu de 'name' dans mon exemple.Vous pouvez également spécifier le sens de la commande comme deuxième paramètre, la valeur par défaut est ASC.

Essayez ceci,

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top