Home > PHP Framework > ThinkPHP > Create paginated data using arrays

Create paginated data using arrays

藏色散人
Release: 2019-09-18 13:57:10
forward
3168 people have browsed it

Create paginated data using arrays

Instructions

Using version: 5.1.35 LTS

A scenario encountered is , the data is an array obtained from the RPC remote call interface, and needs to be displayed on the front-end page.

Solution

You can use the make method of the think\Paginate class to create paginated data. Make method prototype:

/**
     * @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);
    }
Copy after login

See the code comments for the parameters that need to be passed in.

Since the think\Paginate class is an abstract class, another class needs to inherit it to use its public methods. The think\paginator\driver\Bootstrap class in the framework inherits it, so you can use this class to call the make method.

So, you can write a method to create pagination data from an array, which probably looks like this:

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

After using this method to generate a paging object, for example: $data = $this->getPaginateData (...), output it to the template in the controller, and then add it to the template page:

{$data|raw}
Copy after login

The template engine will automatically render the paging style.

Recommended tutorial: thinkphp tutorial

The above is the detailed content of Create paginated data using arrays. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:learnku.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template