วิธีเพิ่มเลขหน้าในคอลเล็กชันที่กำหนดเองใน Magento 2


17

ฉันกำลังทำงานกับโมดูลที่กำหนดเอง ฉันจะใช้วีโอไอพีเริ่มต้นเลขกับฉันคอลเลกชันที่กำหนดเองและยังตั้งข้อ จำกัด ที่กำหนดเองในที่?


1
เมื่อฉันสร้างโมดูลที่กำหนดเองของฉันใน magento2 สำหรับการให้เลขหน้า & ขีด จำกัด ฉันเรียกลิงค์เหล่านี้ ( mage-world.com/blog/… ) และฉันสามารถทำได้
อาร์จัน

คุณช่วยอธิบายเกี่ยวกับวิธีการแทนที่ Magento Catalog สำหรับการเพิ่มเลขหน้าในโมดูลที่กำหนดเองได้ไหม! ลิงค์ด้านบนฉันมีความคิดบางอย่างฉันต้องการแทนที่ในโมดูลแคตตาล็อก
Sushivam

@SachinS ฉันผอมคุณกำลังพูดถึงแถบเครื่องมือ?
Qaisar Satti

ใช่ ... ฉันอธิบายสิ่งที่ฉันพยายามและข้อผิดพลาดที่นี่ ... magento.stackexchange.com/questions/131896/
Sushivam

@SachinS สิ่งที่คุณต้องการประสบความสำเร็จด้วยแถบเครื่องมือและคุณแก้ปัญหาmagento.stackexchange.com/questions/131805/
Qaisar

คำตอบ:


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

ฉันได้รับองค์ประกอบที่มีรหัสมีข้อผิดพลาดอยู่แล้วสำหรับสิ่งที่ฉันพยายามตั้งชื่อบล็อกเพจเจอร์ที่ฉันกำลังสร้างโดยใช้รหัสของคุณ
LM_Fielding

@LM_Fielding ยังไม่ประสบปัญหานี้ แต่ลองลบvar/cacheและvar/generationโฟลเดอร์
Qaisar Satti

ฉันพยายามเพิ่มมันสำหรับแถบเครื่องมือที่ด้านบนและด้านล่างดังนั้นมันถูกต้อง
LM_Fielding

1
@LM_Fielding คุณกำลังเพิ่มสองครั้งที่เป็นสาเหตุของปัญหา
Qaisar Satti
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.