環境:ThinkPHP5.1,PHP7.x
仔細閱圖本文可實現效果:
需求舉例:在首頁中展示所有記錄,每頁10條記錄
1. 可在後端控制器中index()方法下:
public function index()
{
// 查詢狀態爲1的用戶數據 並且每頁顯示10條數據且按照date字段倒序
$list = Db::name('user')->where('status',1)->order('date desc')->paginate(10);
// 渲染模板輸出
return view('',['list'=>$list]);
}
2. 前端頁面顯示分頁數據:
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list|raw}
其中volist爲遍歷list數據,{$list|raw}爲分頁的快速索引,渲染後如下圖所示:
快速索引渲染後的代碼示例如下,因此可根據需要使用類名自定義其樣式:
<ul class="pagination">
<li class="disabled"><span>«</span></li>
<li class="active"><span>1</span></li>
<li><a href="/index?page=2">2</a></li>
<li><a href="/index?page=3">3</a></li>
<li><a href="/index?page=2">»</a></li>
</ul>
如果需要展示分頁總數以及記錄總數,可在後端控制器index()方法中多一步查詢
// 記錄總數
$total = $list->total();
// 分頁總數
$pages = ceil($total / 10);
下面爲常用的模板:
1. 後端控制器index()函數:
public function index()
{
// 分頁數據
$list = Db::table('user')->order('date desc')->paginate(10);
// 總記錄數
$total = $list->total();
// 分頁個數
$pages = ceil($total / 10);
// 渲染模板
return view('',['list'=>$list, 'pages'=>$pages, 'total'=>$total]);
}
2. 前端模板展示:
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list|raw}
<view class="pull-right margin-5">
共{$pages}頁,{$total}條記錄
</view>