首頁 >php框架 >ThinkPHP >使用數組建立分頁數據

使用數組建立分頁數據

藏色散人
藏色散人轉載
2019-09-18 13:57:103164瀏覽

使用數組建立分頁數據

說明

#使用版本:5.1.35 LTS

##遇到的一個場景是,資料是從RPC 遠端呼叫介面取得的數組,需要在前端頁面顯示分頁。

解決方法

可以使用 think\Paginate 類別的 make 方法建立分頁資料。 make 方法原型:

/**
     * @access public
     * @param       $items   需要分页的数据
     * @param       $listRows 每页数据条数
     * @param null  $currentPage 当前页数
     * @param null  $total  总页数
     * @param bool  $simple  是否使用简单模式(只有上一页和下一页)
     * @param array $options 其他参数选项,如查询参数,url路径等
     * @return Paginator  返回一个分页对象
     */
    public static function make($items, $listRows, $currentPage = null, $total = null, $simple = false, $options = [])
    {
        return new static($items, $listRows, $currentPage, $total, $simple, $options);
    }

需要傳入的參數說明請參閱程式碼註解。

由於 think\Paginate 類別的是一個抽象類別,需要另一個類別繼承它才能使用它的公有方法。框架中有 think\paginator\driver\Bootstrap 類別繼承了它,所以可以使用該類別去呼叫 make 方法。

所以,可以寫一個從陣列建立分頁資料的方法,大概是這樣的:

private function getPaginateData($data, $page, $query){
    return Bootstrap::make($data, $perPage, $page, $total, false, ['path' => url('module/controller/action'), 'query' => $query]);
}

使用該方法生成分頁物件後,例如:$data = $this->getPaginateData (...),在控制器中輸出到模板,然後就可以在模板頁面中新增:

{$data|raw}

模板引擎會自動渲染分頁樣式。

推薦教學:

thinkphp教學#

以上是使用數組建立分頁數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除