hyperf 十、分页

教程:Hyperf

我用的hyperf2需要自己安装

composer require hyperf/paginator

执行的时候会调用rm删除文件

rm -rf runtime/container

window调用会有问题,但是也有解决办法。

先删除 runtime/container,再改composer.json

 "require": {
……
"hyperf/paginator": "~2.2.0"
……
}

composer update
composer dump-autoload

一、使用

#App\Controller\TestController
public function test3()
    {
        $currentPage = (int) $this->request->input('page', 1);
        $perPage = (int) $this->request->input('perpage', 2);

        // 这里根据 $currentPage 和 $perPage 进行数据查询,以下使用 Collection 代替
        $collection = new Collection([
            ['id' => 1, 'name' => 'Tom'],
            ['id' => 2, 'name' => 'Sam'],
            ['id' => 3, 'name' => 'Tim'],
            ['id' => 4, 'name' => 'Joe'],
        ]);
        $users = array_values($collection->forPage($currentPage, $perPage)->toArray());

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

#Hyperf\Paginator\Paginator
 public function __construct($items, int $perPage, ?int $currentPage = null, array $options = [])
    {
        foreach ($options as $key => $value) {
            $this->{$key} = $value;
        }

        $this->perPage = $perPage;
        $this->currentPage = $this->setCurrentPage($currentPage);
        $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path;

        $this->setItems($items);
    }

根据代码可以增加参数,比如path。

二、方法说明

 nextPageUrl         获取下一页路径

render        使用给定视图呈现分页器

hasMorePagesWhen        手动指示分页器确实有更多的页面

hasMorePages        是否有·更多分页

toArray        对象转数组

jsonSerialize        将对象转换为JSON可序列化的对象

toJson        对象转数组

previousPageUrl        上一页url

getUrlRange        获取一定范围的url

url        获取指定页的url

fragment        设置路径拼接信息。路径?参数#fragment

appends        增加请求参数

loadMorph        将一组关系加载到混合关系集合上

items        获取正在分页的项的切片

firstItem        获取第一条编号

lastItem        获取最后一条编号

perPage        获取每页数量

hasPages        判断是否有分页

onFirstPage        确定分页器是否在第一页上

currentPage        获取当前页

getPageName        获取用于存储该页的查询字符串变量

setPageName        设置用于存储该页的查询字符串变量

withPath        设置基础路径

setPath        设置基础路径 被withPath 调用

onEachSide        设置要在当前页面链接的每一边显示的链接数

resolveCurrentPath        解析当前请求路径或返回默认值

currentPathResolver        设置当前请求路径解析器回调

resolveCurrentPage        解析当前页面或返回默认值

currentPageResolver        设置当前页面解析器回调

getIterator        获取迭代器

isEmpty        判断是否为空

isNotEmpty        判断是否为非空

count        获取总条目

getCollection        获取收集器

setCollection        设置收集器

offsetExists        判断key是否存在

offsetGet        获取对应key值

offsetSet        修改key值

offsetUnset        取消key值使用

三、疑问

这分页器是给定一个集合后使用,用于多线程分组数据可以使用。

但是用于mysql数据查询时分页应该就用了了。

你可能感兴趣的:(php,php)