W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在其他的框架中,實現(xiàn)分頁是令人感到苦惱的事,但是 Laravel 令它實現(xiàn)起來變得輕松。 Laravel 可以產(chǎn)生基于當(dāng)前頁面的智能「范圍」鏈接,所產(chǎn)生的 HTML 兼容 Bootstrap CSS 框架.
有幾種方法來分頁對象。最簡單的是在搜索構(gòu)建器使用 paginate
方法或 Eloquent 模型。
$users = DB::table('users')->paginate(15);
注意: 目前 Laravel 使用
groupBy
來做分頁操作無法有效率的執(zhí)行,如果您需要使用groupBy
來分頁數(shù)據(jù)集,建議您手動查找數(shù)據(jù)庫,并使用Paginator::make
。
有時你也許希望手動創(chuàng)建發(fā)呢也實例,傳遞一個數(shù)組作為參數(shù)。你可以根據(jù)需求創(chuàng)建 Illuminate\Pagination\Paginator
或者 Illuminate\Pagination\LengthAwarePaginator
實例。
您也可以對 Eloquent 模型分頁:
$allUsers = User::paginate(15);$someUsers = User::where('votes', '>', 100)->paginate(15);
發(fā)送給 paginate
方法的參數(shù)是您希望每頁要顯示的對象選項數(shù)目,只要您取得查找結(jié)果后,您可以在視圖中顯示,并使用 render
方法去建立分頁鏈接:
<div class="container"> <?php foreach ($users as $user): ?> <?php echo $user->name; ?> <?php endforeach; ?></div><?php echo $users->render(); ?>
這就是所有建立分頁系統(tǒng)的步驟了!您會注意到我們還沒有告知 Laravel 我們目前的頁面是哪一頁,這個信息 Laravel 會自動幫您做好。
您也可以通過以下方法獲得額外的分頁信息:
currentPage
lastPage
perPage
hasMorePages
url
nextPageUrl
firstItem
lastItem
total
count
如果您只是要在您的分頁視圖顯示「上一頁」和「下一頁」鏈接,您有個選項 simplePaginate
方法來執(zhí)行更高效率的搜索。當(dāng)您不需要精準(zhǔn)的顯示頁碼在視圖上時,這個方法在較大的數(shù)據(jù)集非常有用:
$someUsers = User::where('votes', '>', 100)->simplePaginate(15);
有的時候您可能會想要從數(shù)組中對象手動建立分頁實體, 您可以根據(jù)您的需要通過 Illuminate\Pagination\Paginator
或 Illuminate\Pagination\LengthAwarePaginator
實體來建立。
您還可以透過 setPath
方法自定義使用的 URL:
$users = User::paginate();$users->setPath('custom/url');
上面的例子將建立 URL,類似以下內(nèi)容: http://example.com/custom/url?page=2
您可以使用 appends
方法增加搜索字串到分頁鏈接中:
<?php echo $users->appends(['sort' => 'votes'])->render(); ?>
這樣會產(chǎn)生類似下列的鏈接:
http://example.com/something?page=2&sort=votes
如果您想要將「哈希片段」加到分頁的 URL,您可以使用 fragment
方法:
<?php echo $users->fragment('foo')->render(); ?>
此方法調(diào)用后將產(chǎn)生 URL,看起來像這樣:
http://example.com/something?page=2#foo
Paginator
類實現(xiàn) Illuminate\Contracts\Support\JsonableInterface
接口的 toJson
方法。由路由返回的值,您可能將 Paginator
實體傳換成 JSON。JSON 表單的實體會包含一些「元」信息,例如 total
、current_page
、last_page
。該實體數(shù)據(jù)將可通過在
JSON 數(shù)組中 data
的鍵取得。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: