1. 程式人生 > 其它 >【Laravel筆記】20. 資料分頁

【Laravel筆記】20. 資料分頁

技術標籤:前後端全棧開發# Laravel開發筆記laravel

關於 拾年之璐

微信公眾號知行校園匯,點選檢視,歡迎關注

其他平臺(點選藍字可訪問):

GitHub  |  Gitee  |  嗶哩嗶哩  |  語雀  |  簡書  |  微信小程式  |  知行達摩院  

本文專欄:Laravel  點選檢視系列文章

本文主要內容:

20.1 資料分頁的使用

1、首先獲取需要查詢展示的資料,並且指定每頁顯示多少條資料:

//可以使用構造器方式
$users = DB::table('users')->paginate
(5); //也可以使用模型的方式 $users = User::paginate(5);

2、然後將資料返回給前端檢視:

return view('data', [
    'list' => $users
]);

3、接下來,在前端寫程式碼,進行展示:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>標題</title>
</head>
<body>
<table border="1"> <tr> <th>ID</th> <th>姓名</th> <th>性別</th> <th>郵箱</th> </tr> @foreach($list as $user) <tr> <th>{{$user->id}}</th> <
th
>
{{$user->username}}</th> <th>{{$user->gender}}</th> <th>{{$user->email}}</th> </tr> @endforeach </table> {{$list->links()}} </body> </html>

image-20210209223743642

4、如上程式碼,分頁按鈕直接使用 links() 方法即可,它預設繼承了Bootstrap 樣式;

{{$list->links()}}

如果不想使用這個預設的分頁樣式,可以自定義,分頁樣式view的具體檔案位置:

vendor/laravel/framework/src/Illuminate/Pagination/resources/views/tailwind.blade.php

5、使用withPath()方法,更改路由地址;

可以在控制器端修改:

$users->withPath('/users/list');

可以在前端的分頁按鈕 修改:

{{$list->withPath('/users/list')->links()}}

也可以在路由中修改。

修改後,前端檢視頁面中的分頁按鈕的連結,就變成了 http://127.0.0.1:8000/users/list?page=*

6、如果想帶指定引數,可以使用 appends() 方法;

{{$list->appends(['sort'=>'id'])->links()}}

7、如果想儲存所有的連結引數(比如查詢引數),可以使用 withQueryString() 方法;

{{$list->withQueryString()->links()}}

8、使用 fragment() 方法給URL 地址新增錨點 # 符號;

{{$list->fragment('element')->links()}}

9、大量分頁中…省略分頁數量,使用 onEachSize() 方法可設定外側數量,預設3;

{{$list->onEachSide(1)->links()}}

20.2 更多方法

如下:

方法描述
$results->count()獲取當前頁資料的數量
$results->currentPage()獲取當前頁頁碼
r e s u l t s − > g e t U r l R a n g e ( results->getUrlRange( results>getUrlRange(start,$end)建立分頁URL 的範圍
$results->hasPages()是否有多頁
$results->hasMorePages()是否有更多頁
$results->firstItem()獲取結果集中第一條資料的結果編號
$results->getOptions()獲取分頁器選項
$results->items()獲取當前頁的所有項
$results->lastItem()獲取結果集中最後一條資料的結果編號
$results->lastPage()獲取最後一頁的頁碼(在simplePaginate 無效)
$results->nextPageUrl()獲取下一頁的URL
$results->onFirstPage()當前頁是否為第一頁
$results->perPage()每頁的資料條數
$results->previousPageUrl()獲取前一頁的URL
$results->total()資料總數(在simplePaginate 無效)
r e s u l t s − > u r l ( results->url( results>url(page)獲取指定頁的URL
$results->getPageName()獲取分頁的查詢字串變數
r e s u l t s − > s e t P a g e N a m e ( results->setPageName( results>setPageName(name)設定分頁的查詢字串變數

以上。