Magento 2에서 커스텀 컬렉션에 페이지 매김을 추가하는 방법


17

사용자 정의 모듈을 작업 중입니다. 내 사용자 지정 컬렉션에 기본 마 젠토 페이지 매김을 사용하고 이에 대한 사용자 지정 제한을 설정 하려면 어떻게 해야합니까?


1
페이지 매김 및 제한을 위해 magento2에서 사용자 정의 모듈을 만들 때이 링크 ( mage-world.com/blog/… )를 참조 하면 완료 할 수 있습니다.
Arjun

사용자 지정 모듈에 페이지 매김을 추가하기 위해 Magento 카탈로그를 재정의하는 방법에 대해 설명해 주시겠습니까? 위의 링크 아이디어가
생겼

@ SachinS 툴바에 대해 이야기하고 있습니까?
Qaisar Satti

그렇습니다 ... 내가 시도한 것과 여기에 오류가있다 ... magento.stackexchange.com/questions/131896/…
Sushivam

당신이 도구 모음으로 달성하고자하고이 해결 한 일을 @SachinS magento.stackexchange.com/questions/131805/...
Qaisar Satti

답변:


25

그것을 위해 수집하다

public function getNews()
    {
      //get values of current page
        $page=($this->getRequest()->getParam('p'))? $this->getRequest()->getParam('p') : 1;
    //get values of current limit
        $pageSize=($this->getRequest()->getParam('limit'))? $this->getRequest()->getParam('limit') : 1;


        $newsCollection = $this->newscollectionFactory->create();
        $newsCollection->addFieldToFilter('is_active',1);
        $newsCollection->setOrder('title','ASC');
        $newsCollection->setPageSize($pageSize);
        $newsCollection->setCurPage($page);
        return $newsCollection;
    }

페이지 매김 추가

protected function _prepareLayout()
{
    parent::_prepareLayout();
    $this->pageConfig->getTitle()->set(__('News'));


    if ($this->getNews()) {
        $pager = $this->getLayout()->createBlock(
            'Magento\Theme\Block\Html\Pager',
            'test.news.pager'
        )->setAvailableLimit(array(5=>5,10=>10,15=>15))->setShowPerPage(true)->setCollection(
            $this->getNews()
        );
        $this->setChild('pager', $pager);
        $this->getNews()->load();
    }
    return $this;
}

자식 블록 추가

public function getPagerHtml()
{
    return $this->getChildHtml('pager');
}

phtml 파일로

    <?php if ($block->getPagerHtml()): ?>
        <div class="order-products-toolbar toolbar bottom"><?php echo $block->getPagerHtml(); ?></div>
    <?php endif ?>

참고


Pssst : $this->getRequest()->getParam('p') ?: 1또는 더 나은 방법 $this->getRequest()->getParam('p', 1).
nevvermind

코드를 사용하여 생성하는 호출기 블록의 이름을 지정하려고 할 때 ID가있는 요소가 이미 오류가 발생합니다.
LM_Fielding

아직이 문제에 직면하지만 삭제하지 @LM_Fielding var/cachevar/generation폴더
Qaisar Satti에게

상단과 하단에 툴바를 추가하려고 했으므로 정확히 맞습니다.
LM_Fielding

1
@LM_Fielding 문제를 일으키는 두 번 추가하고 있습니다.
Qaisar Satti
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.