加載中...

分頁


分頁實現

版本 新增功能
5.0.1 支持第二個參數直接傳入總記錄數

ThinkPHP5.0內置了分頁實現,要給數據添加分頁輸出功能在5.0變得非常簡單,可以直接在Db類查詢的時候調用paginate方法:

// 查詢狀態為1的用戶數據 并且每頁顯示10條數據
$list?=?Db::name('user')->where('status',1)->paginate(10);
// 把分頁數據賦值給模板變量list
$this->assign('list',?$list);
// 渲染模板輸出
return?$this->fetch();

也可以改成模型的分頁查詢代碼:

// 查詢狀態為1的用戶數據 并且每頁顯示10條數據
$list?=?User::where('status',1)->paginate(10);
// 把分頁數據賦值給模板變量list
$this->assign('list',?$list);
// 渲染模板輸出
return?$this->fetch();

模板文件中分頁輸出代碼如下:

<div>
<ul>
{volist name='list' id='user'}
    <li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list->render()}

也可以單獨賦值分頁輸出的模板變量

// 查詢狀態為1的用戶數據 并且每頁顯示10條數據
$list?=?User::where('status',1)->paginate(10);
// 獲取分頁顯示
$page?=?$list->render();
// 模板變量賦值
$this->assign('list',?$list);
$this->assign('page',?$page);
// 渲染模板輸出
return?$this->fetch();

模板文件中分頁輸出代碼如下:

<div>
<ul>
{volist name='list' id='user'}
    <li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$page}

默認情況下,生成的分頁輸出是完整分頁功能,帶總分頁數據和上下頁碼,分頁樣式只需要通過樣式修改即可,完整分頁默認生成的分頁輸出代碼為:

<ul class="pagination">
<li><a href="?page=1">&laquo;</a></li>
<li><a href="?page=1">1</a></li>
<li class="active"><span>2</span></li>
<li class="disabled"><span>&raquo;</span></li>
</ul>

傳入總記錄數( V5.0.1

V5.0.1版本開始,支持傳入總記錄數而不會自動進行總數計算,例如:

// 查詢狀態為1的用戶數據 并且每頁顯示10條數據 總記錄數為1000
$list?=?User::where('status',1)->paginate(10,1000);
// 獲取分頁顯示
$page?=?$list->render();
// 模板變量賦值
$this->assign('list',?$list);
$this->assign('page',?$page);
// 渲染模板輸出
return?$this->fetch();

簡潔分頁

如果你僅僅需要輸出一個 僅僅只有上下頁的分頁輸出,可以使用下面的簡潔分頁代碼:

// 查詢狀態為1的用戶數據 并且每頁顯示10條數據
$list?=?User::where('status',1)->paginate(10,true);
// 把分頁數據賦值給模板變量list
$this->assign('list',?$list);
// 渲染模板輸出
return?$this->fetch();

簡潔分頁模式的輸出代碼為:

<ul class="pager">
<li><a href="?page=1">&laquo;</a></li>
<li class="disabled"><span>&raquo;</span></li>
</ul>

由于簡潔分頁模式不需要查詢總數據數,因此可以提高查詢性能。

分頁參數

主要的分頁參數如下: 參數 描述
list_rows 每頁數量
page 當前頁
path url路徑
query url額外參數
fragment url錨點
var_page 分頁變量
type 分頁類名

分頁參數的設置方式有兩種,第一種是在配置文件中定義,例如:

//分頁配置
'paginate'               => [
    'type'     => 'bootstrap',
    'var_page' => 'page',
],

type屬性支持命名空間,例如:

//分頁配置
'paginate'               => [
    'type'     => '\org\page\bootstrap',
    'var_page' => 'page',
],

也可以在調用分頁方法的時候傳入,例如:

$list?=?Db::name('user')->where('status',1)->paginate(10,true,[
    'type'     => 'bootstrap',
    'var_page' => 'page',
]);

還沒有評論.
股票配资平台l选一直牛