Cách thêm phân trang trên bộ sưu tập tùy chỉnh trong Magento 2


17

Tôi đang làm việc trên mô-đun tùy chỉnh. Làm cách nào tôi có thể sử dụng phân trang magento mặc định với bộ sưu tập tùy chỉnh của mình và cũng đặt giới hạn tùy chỉnh cho điều đó?


1
Khi tôi tạo mô-đun tùy chỉnh của mình trong magento2 để phân trang & giới hạn, tôi đã giới thiệu các liên kết này ( mage-world.com/blog/ mẹo ) và tôi có thể hoàn thành nó.
Arjun

Bạn có thể giải thích về cách ghi đè Danh mục Magento để thêm phân trang vào mô-đun tùy chỉnh! liên kết trên tôi có một số ý tưởng, tôi muốn ghi đè trong mô-đun Danh mục
Sushivam

@SachinS tôi gầy bạn đang nói về thanh công cụ?
Qaisar Satti

Vâng chính xác ... Tôi đã mô tả những gì tôi đã thử và lỗi ở đây ... magento.stackexchange.com/questions/131896/ợi
Sushivam

@SachinS những gì bạn muốn đạt được với thanh công cụ và bạn đã giải quyết magento.stackexchange.com/questions/131805/ chủ
Qaisar Satti

Câu trả lời:


23

lấy bộ sưu tập cho điều đó

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

Thêm phân trang

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

thêm khối con

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

trong tập tin phtml

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

Tài liệu tham khảo


Pssst: $this->getRequest()->getParam('p') ?: 1hoặc, hoặc tốt hơn , $this->getRequest()->getParam('p', 1).
nevvermind

Tôi nhận được phần tử với id đã tồn tại lỗi cho bất cứ điều gì tôi cố gắng đặt tên cho khối máy nhắn tin mà tôi đang tạo bằng mã của bạn.
LM_Fielding

@LM_Fielding chưa gặp phải vấn đề này nhưng hãy thử xóa var/cachevar/generationthư mục
Qaisar Satti

Tôi đã cố gắng thêm nó cho một thanh công cụ ở trên cùng và ở dưới cùng, vì vậy nó là chính xác.
LM_Fielding

1
@LM_Fielding bạn đang thêm nó hai lần gây ra vấn đề.
Qaisar Satti
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.