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.