我有一个自定义集合,我添加过滤器。例如,我有这个:

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

许可以下: CC-BY-SA归因
scroll top