hyperf 分页器


安装

composer require hyperf/paginator

paginator控制器 app/Controller/PaginatorController.php

<?php

namespace App\Controller;

use Hyperf\HttpServer\Annotation\AutoController;
use Hyperf\HttpServer\Contract\RequestInterface;
use Hyperf\Paginator\Paginator;
use Hyperf\Utils\Collection;

/**
 * @AutoController()
 */
class PaginatorController
{
        public function index(RequestInterface $request)
        {
                var_dump($request);
                $currentPage = (int) $request->query('page', 1);
                $perPage = (int) $request->query('per_page', 2);

                //数据集
                $collection = new Collection([
                        ['id' => 1, 'name' => '张三'],
                        ['id' => 2, 'name' => '李四'],
                        ['id' => 3, 'name' => '小红'],
                        ['id' => 4, 'name' => '王五'],
                        ['id' => 5, 'name' => '小明'],
                        ['id' => 6, 'name' => '小军'],
                        ['id' => 7, 'name' => '小丽'],
                ]);

                $users = array_values($collection->forPage($currentPage, $perPage)->toArray());

                return new Paginator($users,$perPage, $currentPage);

                //$paginator = new Paginator($users, $perPage, $currentPage);
                //获取当前页数
                //$currentPage = $paginator->currentPage();
                //获取当前页的条数
                //$count = $paginator->count();
                //获取当前页中第一条数据的编号
                //$firstItem = $paginator->firstItem();
                //获取当前页中最后一条数据的编号
                //$lastItem = $paginator->lastItem();
                // 下一页的 URL
                //$nextUrl = $paginator->nextPageUrl();
                // 上一页的 URL
                //$previousPageUrl = $paginator->previousPageUrl();
                // 获取指定 $page 页数的 URL $page
                //$url = $paginator->url($currentPage+1);
                //return [
                //      'current_page'=>$currentPage,
                //      'count'=>$count,
                //      'first_item'=>$firstItem,
                //      'last_item'=>$lastItem,
                //      'next_url'=>$nextUrl,
                //      'previous_url'=>$previousPageUrl,
                //      'url'=>$url,
                //];
        }
}

访问测试

curl 118.195.173.53:9501/paginator/index?page=2\&per_page=2

结果显示

{
    "current_page": 2,
    "data": [{
        "id": 3,
        "name": "小红"
    }, {
        "id": 4,
        "name": "王五"
    }],
    "first_page_url": "\/?page=1",
    "from": 3,
    "next_page_url": null,
    "path": "\/",
    "per_page": 2,
    "prev_page_url": "\/?page=1",
    "to": 4
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM