說明
#使用版本: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}模板引擎會自動渲染分頁樣式。 推薦教學:
以上是使用數組建立分頁數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!