문제

필터를 추가하는 사용자 정의 컬렉션이 있습니다.예를 들어, 나는 이것을 가지고있다 :

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

$ giftColletion에 어떤 필터를 추가해야하므로 위치 에 의해 모든 레코드를 ASC 주문으로 반환 할 수 있습니까?

도움이 되었습니까?

해결책

이 작업을 시도 할 수 있습니다

$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 ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top