tp5數據排序分頁展示

環境: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>

效果如下:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章