hyperf 十、分页

这篇具有很好参考价值的文章主要介绍了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值使用文章来源地址https://www.toymoban.com/news/detail-604845.html

到了这里,关于hyperf 十、分页的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hyperf 十三 视图

    教程:Hyperf composer地址:hyperf/view - Packagist 本次测试使用twig twig composedr地址:twig/twig - Packagist twig 文档地址:Home - Twig - The flexible, fast, and secure PHP template engine 创建 config/autoload/view.php文件。  若task没引入,则引入task。 Task 模式下,视图渲染工作是在 Task Worker 进程中完成的。

    2024年02月11日
    浏览(21)
  • hyperf协程

            我们已经知道了协程可以很好的解决异步非阻塞系统的开发问题,那么协程本身到底是什么呢?从定义上来说, 协程是一种轻量级的线程,由用户代码来调度和管理,而不是由操作系统内核来进行调度,也就是在用户态进行 。可以直接的理解为就是一个非标准的

    2024年02月15日
    浏览(25)
  • hyperf 学习 三、中间件

    文档地址:Hyperf 中间件的原理就是请求时拦截并进行处理,再传到对应的回调,处理返回数据。 流程:request- middleware-response。 中间件在路由定义时配置。所以根据上一篇文章hyperf 学习 二、路由_lsswear的博客-CSDN博客 中注释路由 Controller、AutoController可以配置 options。 后来查

    2024年02月12日
    浏览(46)
  • Hyperf使用RabbitMQ消息队列

    Hyperf连接使用RabbitMQ消息中间件 使用Docker部署RabbitMQ,-传送门 使用Docker部署Hyperf,-传送门- 安装amqp扩展 安装command命令行扩展 配置参数 假设已经在rabbitmq设置了交换机exchange_test和队列queue_test 新建 /config/autoload/amp.php配置文件,修改地址和用户名密码 创建生产者中间件 exch

    2024年02月13日
    浏览(45)
  • Hyperf 运行各种网络服务

    简单地运行起普通的 HTTP 服务之后,今天我们再来学习一下如何使用 Hyperf 运行 TCP/UDP 以及 WebSocket 服务。 之前我们通过普通的 Swoole 都已经搭建起过这些服务,其实和 HTTP 服务都差不多,只是修改一些参数或者监听的事件而已。在框架中,实现这些服务也是类似的,而且会更

    2024年02月03日
    浏览(27)
  • hyperf 其他组件 一 Task

    教程:Hyperf 为防止有些函数导致堵塞进程,使用task模拟携程处理。本质上是多进程运行阻塞函数,性能取决于Task Worker数量。 这块的实现我没看懂。 Task不是默认配置,须在server.php中加Task配置。  其他地方也没找到task对应的方法实现……  最后这种是错误使用,应该没关联

    2024年02月13日
    浏览(14)
  • hyperf 二十二 数据库 模型关系

    教程:Hyperf 通过设置 HyperfDatabaseModelBuilder::eagerLoad加载需查询用的model, 查询条件子查询使用in。 eagerLoad在Builder::eagerLoadRelations()被调用,传入Builder::eagerLoadRelation()。eagerLoadRelation()中调用addEagerConstraints()构造查询。  用户和图片一对多关系,文章和图片一对一关系。  一

    2024年01月19日
    浏览(44)
  • hyperf 二十一 数据库 模型关系

    教程:Hyperf 根据文档 一对一:Model::hasOne(被关联模型,被关联模型外键,本模型被关联的字段) 一对多:Model::hasMany(被关联模型,被关联模型外键,本模型被关联的字段) 反向一对多:Model::belongsTo(被关联模型,本模型外键,被关联模型的对应字段,关联关系) 多对多:Model:

    2024年01月17日
    浏览(47)
  • docker 安装rabbitmq并配置hyperf使用

    这里我想完成的是 制作消息(多个协程制造)——》推送到rabbitmq——》订阅消息队列——》消费消息(ws协程客户端【一次消费多条】/ws前端) 利用 WebSocket 协议让客户端和服务器端保持有状态的长链接,保存链接上来的客户端 id。订阅发布者发布的消息针对已保存的客户

    2024年03月12日
    浏览(49)
  • 深入 Hyperf:HTTP 服务启动时发生了什么?

    当我们创建 Hyperf 项目之后,只需要在终端执行 php bin/hyperf.php start 启动命令,等上几秒钟,就可以看到终端输出的 Worker 进程已启动,HTTP 服务监听在 9501 端口的日志信息。 打开浏览器访问 http://127.0.0.1:9501 ,不出意外的话,页面会显示 Hello Hyperf ,说明 HTTP 服务已经在工作了

    2024年02月05日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包