【Laravel筆記】20. 資料分頁
阿新 • • 發佈:2021-02-10
技術標籤:前後端全棧開發# 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>
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) | 設定分頁的查詢字串變數 |
以上。