Laravel自定義分頁樣式

        Laravel 的分頁組件默認爲 Bootstrap 的分頁樣式,但若是咱們用的並非 Bootstrap 或者說分頁的 HTML結構不同,這時咱們須要自定義分頁。其實 Laravel 的分頁組件是很是的靈活,能夠經過幾種方法去實現咱們的需求。 php

        咱們能夠從 Model 抽象類看到經過使用 Illuminate\Database\Query\Builder 能夠查找出paginatesimplePaginate的實現。而後直接查看 Illuminate\Pagination\BootstrapThreePaginater 能夠查找到 render 方法。這方法就是輸出 分頁組件 默認的 html。html

        進一步,能夠看到simplePaginate 經過 Illuminate\Pagination\SimpleBootstrapThreePaginater 繼承 Illuminate\Pagination\BootstrapThreePaginater 並對 render 方法進行重寫,因而可知,咱們能夠經過繼承 BootstrapThreePaginater 類並對 render 方法進行重寫,就能夠自定義分頁的樣式了。laravel

方法一:經過繼承

經過替換默認的生成類來修改分頁的自定義樣式:替換 laravel 分頁組件默認生成的模板 出自 Inspirer(https://www.insp.top)


方法二:經過視圖

該方法主要經過利用 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/>

最後的效果:

page

自定義分頁樣式,能夠經過以上方法實現,固然我的建議仍是用 方法一 吧,由於方法二 跟寫原生沒什麼區別。

相關文章
相關標籤/搜索