laravel實現分頁樣式替換的代碼詳解

來源:互聯網
上載者:User
這篇文章主要給大家介紹了關於laravel實現分頁樣式替換的相關資料,實現了增加首、尾頁的功能,文章通過範例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

前言

本文主要給大家介紹了關於laravel分頁樣式替換的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

方法如下:

一、自訂一個類(代碼如下),位置隨你放,注意命名空間。

二、模板輸出調用 {!! $data->render(new \App\Http\Controllers\ShmilyThreePresenter($data)) !!}

最終樣式

實現代碼


<?php//建立繼承自 Illuminate\Pagination\BootstrapThreePresenter 類,這裡我把類放在了Controllers下面,需要修改BootstrapThreePresenter 類的哪些方法就重寫哪個方法。如果覺得預設的bootstrap樣式和你項目的樣式不符,可以自訂樣式。namespace App\Http\Controllers;use Illuminate\Contracts\Pagination\Paginator as PaginatorContract;use Illuminate\Contracts\Pagination\Presenter as PresenterContract;class ShmilyThreePresenter extends \Illuminate\Pagination\BootstrapThreePresenter{ /**  * Convert the URL window into Bootstrap HTML.  *  * @return string  */ public function render() {  if ($this->hasPages()) {   return sprintf(    '<ul class="am-pagination">%s %s %s %s %s</ul>',//自訂class樣式    $this->firstPage(),//添加首頁方法    $this->getPreviousButton('上一頁'),    $this->getLinks(),    $this->getNextButton('下一頁'),    $this->last()//添加尾頁方法   );  }  return ''; } /**  * Get HTML wrapper for an available page link.  *  * @param string $url  * @param int $page  * @param string|null $rel  * @return string  */ protected function getAvailablePageWrapper($url, $page, $rel = null) {  $rel = is_null($rel) ? '' : ' rel="'.$rel.'"';  return '<li><a href="'.htmlentities($url).'" rel="external nofollow" '.$rel.'>'.$page.'</a></li>';  //這裡li標籤可以添加你自己的class樣式 } /**  * Get HTML wrapper for disabled text.  *  * @param string $text  * @return string  */ protected function getDisabledTextWrapper($text) {  return '<li class="disabled"><span>'.$text.'</span></li>'; } /**  * Get HTML wrapper for active text.  *  * @param string $text  * @return string  */ protected function getActivePageWrapper($text) {  return '<li class="active"><span>'.$text.'</span></li>'; } /**  * Get the next page pagination element.  *  * @param string $text  * @return string  */  //建立首頁方法 public function firstPage($text = '首頁') {  // If the current page is greater than or equal to the last page, it means we  // can't go any further into the pages, as we're already on this last page  // that is available, so we will make it the "next" link style disabled.  if ($this->paginator->currentPage() <= 1) {   return $this->getDisabledTextWrapper($text);  }  $url = $this->paginator->url(1);  return $this->getPageLinkWrapper($url, $text, 'first'); } /**  * Get the next page pagination element.  *  * @param string $text  * @return string  */  //建立尾頁方法 public function last($text = '尾頁') {  // If the current page is greater than or equal to the last page, it means we  // can't go any further into the pages, as we're already on this last page  // that is available, so we will make it the "next" link style disabled.  $url = $this->paginator->url($this->paginator->lastPage());  return $this->getPageLinkWrapper($url, $text, 'last'); }}

總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.