专栏/【原创】【文】:ThinkPHP(TP)框架实现数据分页

【原创】【文】:ThinkPHP(TP)框架实现数据分页

2022年04月06日 03:19--浏览 · --喜欢 · --评论
粉丝:3315文章:6

        在日常的APP或小程序应用中,分页是到处存在的。如在打开APP时,首先引入眼帘的是最新的信息,一般最先打开的信息有几十条,当我们阅读完成后,如果这个时候将手指向下滑动,这个时候APP会重新获取最新的数据,这个过程是重新加载数据;而如果我们在看完第一屏数据后,用手指向上滑动,这个时候APP会在原有的基础上,加载另外一页的数据,并且显示在第一屏数据的下方,这个过程就是我们所说的分页,俗称刷手机。

        在TP框架中,分页是很方便实现的,我们可以通过使用page函数或者paginate函数来对已有的数据来实现分页。具体的操作如下:

1.创建控制器和数据模型

        在前面的视频中,我们已经创建了User控制器和数据模型,今天我们首先需要创建Plan控制器和Plan数据模型,在VSCode中输入Ctrl+~按钮,打开终端,输入相应的创建命令:

2.创建getPlanList控制器方法

        在Plan控制器中,创建getPlanList,目的是为客户端访问服务器提供接口,代码如下:

注意:在这里,我们首先需要对于引用的数据模型在控制器的前端进行引用,并且调用模型中的方法,从而从模型中顺利获取数据,所以,该控制器的详细代码如下:

3.创建getPlanData数据模型方法

        在上面的控制器方法中,我们可知调用了名称为getPlanData的数据模型方法。该方法主要是为前端提供数据库中的指定数据。我们在这里做如下的创建:(暂不包含分页代码)

        以上代码是从数据库的数据表“tblWeeksSet”中获取全部数据。但是这里尚未指定数据表,所以这里我们需要单独添加数据表的名称,和上面的方法一起,代码如下

4.page分页函数和paginate分页函数

        在TP框架中,分页函数有两个,分别是page和paginate两个函数,这两个函数功能类似,但是,推荐使用paginate函数为佳。

  • page函数:

    page(PNo,PNum)函数包含2个参数,分别是PNo页面,PNum一页的数量。如上面的代码,要实现分页,我们可以写出:

    这里表示将内容分成第一页10条数据,仅此而已!如果用该分页函数确实可以进行相应的分页,但是总体还是比较麻烦,我们需要对总共多少记录,需要分成多少页,是无法得知的,要求我们单独进行另外数据的获取后才能完成,所以该函数并不是最好的选择。

  • paginate(PNum)函数,仅包含每页的记录数量参数。但是该函数的优点是,在分页时,提供完整是分页数据,包括总记录数量(total);每页分页数据量(per_page);当前页(current_page);最后一页(last_page),及当前页的数据(data),分页代码如下:

  • 返回数据如下图:

ThinkPHP(TP)框架实现数据分页


    那么,如果要访问第二页,第三页怎么办呢?我们可以在URL中添加page参数,如,原本访问分页接口的是:

接下去的其他页面,我们可以这样去访问:

    也就是说,在后面跟上page参数即可,要访问第几页,就输入相应的数字即可。

总结

       TP框架中分页还是非常的方便,通过使用paginate函数,不但可以分页,也可以很方便访问指定的页面。在我们的前端,如果要求翻页,则我们可以使用当前页与最后页进行判断,如果当前页小于最后页,则通过当前页+1的方式作为page参数的值,放在URL中进行访问下一页即可。好,今天内容写到这里,希望朋友们能够喜欢!我们下次见!


投诉或建议