Laravel
的分頁組件默認爲 Bootstrap
的分頁樣式,但若是咱們用的並非 Bootstrap
或者說分頁的 HTML
結構不同,這時咱們須要自定義分頁。其實 Laravel
的分頁組件是很是的靈活,能夠經過幾種方法去實現咱們的需求。 php
咱們能夠從 Model
抽象類看到經過使用 Illuminate\Database\Query\Builder
能夠查找出paginate
、simplePaginate
的實現。而後直接查看 Illuminate\Pagination\BootstrapThreePaginater
能夠查找到 render
方法。這方法就是輸出 分頁組件
默認的 html。html
進一步,能夠看到simplePaginate
經過 Illuminate\Pagination\SimpleBootstrapThreePaginater
繼承 Illuminate\Pagination\BootstrapThreePaginater
並對 render
方法進行重寫,因而可知,咱們能夠經過繼承 BootstrapThreePaginater
類並對 render
方法進行重寫,就能夠自定義分頁的樣式了。laravel
該方法主要經過利用
Laravel
提供的方法來實現,主要用到currentPage()
、url( $page )
、lastPage()
。post
在須要調用分頁的視圖中引入 分頁視圖
($data 所指的是分頁數據,將它傳去分頁視圖):ui
@include('pagination.default', ['paginator' => $data])
<br/>url
利用經過 第一步
傳遞過來的 $data
, 如何去利用呢?
在 resources/views
目錄下建立 pagination
目錄,並建立一個視圖default.blade.php
。添加一下代碼:spa
<div class="pagination"> <ul> <li class="previous {{ ($paginator->currentPage() == 1) ? ' disabled' : '' }}"> <a href="{{ $paginator->url(1) }}"><i class="chevron left icon"></i></a> </li> @for ($i = 1; $i <= $paginator->lastPage(); $i++) <li class="{{ ($paginator->currentPage() == $i) ? ' active' : '' }}"> <a href="{{ $paginator->url($i) }}">{{ $i }}</a> </li> @endfor <li class="next {{ ($paginator->currentPage() == $paginator->lastPage()) ? ' disabled' : '' }}"> <a href="{{ $paginator->url($paginator->currentPage()+1) }}"> <i class="chevron right icon"></i> </a> </li> </ul> </div>
$paginator->currentPage()
:獲取當前頁code
$paginator->lastPage()
:獲取尾頁htm
$paginator->url($page)
:獲取頁碼的URL繼承
<br/>
自定義分頁樣式,能夠經過以上方法實現,固然我的建議仍是用
方法一
吧,由於方法二
跟寫原生沒什麼區別。