cara menambahkan pagination pada koleksi khusus di Magento 2


17

Saya sedang mengerjakan modul khusus. Bagaimana saya bisa menggunakan pagination magento default dengan koleksi khusus saya dan juga menetapkan batas khusus untuk itu?


1
Ketika saya membuat modul khusus saya di magento2 untuk pagination & limit, saya merujuk tautan ini ( mage-world.com/blog/… ) dan saya bisa menyelesaikannya.
— Arjun

Bisakah Anda jelaskan tentang cara mengganti Katalog Magento untuk menambahkan pagination ke modul khusus! tautan di atas saya punya beberapa ide, saya ingin menimpa dalam modul Katalog
— Sushivam

@SachinS i kurus Anda berbicara tentang toolbar?
— Qaisar Satti

Ya persis ... Saya telah menggambarkan apa yang saya coba dan galat di sini ... magento.stackexchange.com/questions/131896/…
— Sushivam

@SachinS apa yang ingin Anda capai dengan toolbar dan apakah Anda menyelesaikan magento.stackexchange.com/questions/131805/…
— Qaisar Satti

Jawaban:


24

dapatkan koleksi untuk itu

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

Tambahkan pagination

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

menambahkan blok anak

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

dalam file phtml

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

Referensi


Pssst: salah satu $this->getRequest()->getParam('p') ?: 1atau, lebih baik lagi $this->getRequest()->getParam('p', 1),.
— nevvermind

Saya mendapatkan elemen dengan id sudah ada kesalahan untuk apa pun yang saya coba beri nama pager blok yang saya buat menggunakan kode Anda.
— LM_Fielding

@LM_Fielding belum menghadapi masalah ini tetapi coba hapus var/cachedan var/generationfolder
— Qaisar Satti

Saya mencoba menambahkannya untuk bilah alat di bagian atas dan di bagian bawah, jadi itu benar.
— LM_Fielding

1
@LM_Fielding Anda menambahkannya dua kali yang menyebabkan masalah.
— Qaisar Satti
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.