Magento2按收集条款订购
-
29-09-2020 - |
题
我有一个自定义集合,我添加过滤器。例如,我有这个:
$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);
我应该向$giftColletion添加什么过滤器,以便它可以按字段返回所有记录 职位 按顺序排列?
解决方案
你可以试试这个
$giftColletion = $this->_giftFactory->getCollection();
$giftColletion->addFieldToFilter('store_id', 1);
$giftColletion->setOrder('position','ASC');
setOrder
是用于排序
其他提示
根据 \Magento\Catalog\Model\ResourceModel\Product\Collection
您可以使用 addAttributeToSort()
方法来排序您的集合。
这对我很有效:
$collection = $this->_collection ->create() ->addAttributeToSelect(['sku', 'name', 'image']) ->addCategoryFilter($category) ->addAttributeToSort('name') ->setPageSize($limit); return $collection;
使用您需要对集合进行排序的任何属性,而不是 'name'
在我的例子中。您也可以指定订单方向作为第二个参数,它默认为 ASC
.
试试,
$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;
.