Magento 2'de özel koleksiyona sayfalandırma nasıl eklenir


17

Özel modül üzerinde çalışıyorum. Nasıl varsayılan magento kullanabilirsiniz sayfalama benim ile özel koleksiyon ve aynı zamanda bu konuda özel sınırlar belirleyin?


1
Sayfalama ve limitler için magento2'de özel modülümü oluşturduğumda bu bağlantıya ( mage-world.com/blog/… ) atıfta bulundum ve bunu yapabilirim.
— Arjun

Özel modüle sayfalandırma eklemek için Magento Kataloğunu nasıl geçersiz kılacağınızı açıklar mısınız? yukarıdaki bağlantı bazı fikrim var, ben Katalog modülünü geçersiz kılmak istiyorum
— Sushivam

Araç çubuğundan bahsettiğinizi düşünüyor musunuz?
— Qaisar Satti

Evet tam olarak ... Ben ne denedim ve burada hata açıkladım
— Sushivam

@SachinS araç çubuğuyla elde etmek istediğiniz şeyi ve bu magento.stackexchange.com/questions/131805/…
— Qaisar Satti

Yanıtlar:


26

bunun için koleksiyon al

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

Sayfalandırma ekle

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

çocuk bloğunu ekleme

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

phtml dosyasında

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

Referans


Pssst: ya $this->getRequest()->getParam('p') ?: 1da daha iyisi $this->getRequest()->getParam('p', 1).
— nevvermind

Kodunu kullanarak oluşturduğum çağrı bloğu adını adlandırmaya çalıştığım her şey için kimliğe sahip öğe zaten var hata alıyorum.
— LM_Fielding

@LM_Fielding henüz bu sorunla karşılaşmadı ancak silmeyi var/cacheve var/generationklasörü deneyin
— Qaisar Satti

Ben üstte ve altta bir araç çubuğu eklemek için çalışıyordu, bu yüzden tam olarak doğru oldu.
— LM_Fielding

1
@LM_Fielding, soruna neden olan iki kez ekliyorsunuz.
— Qaisar Satti
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.