关于webman使用think-orm分页的咨询

楚羽幽

问题描述

文档路径:https://www.workerman.net/doc/webman/db/paginator.html

截图

使用think-orm得时候,假如我地址栏的参数如下:
当前分页&每页数量
?page=1&limit=30
那我每次查询分页岂不是都要这样传入参数?
paginate(['list_rows' => $limit, 'page' => $page]);

有没有直接查询执行paginate时,根据地址栏参数自动识别每页多少数量

415 4 0
4个回答

ysian

paginate只需要传limit就行,前端传参数page会自动注入page的,不传limit默认为15条每页,例如

BlogArticleModel::with('category')->where($where)->field($field)->order($order)->paginate($limit);
  • 楚羽幽 2024-06-21

    我的意思是,paginate不想传入任何参数,就一个方法名,自动识别页码跟数量,但目前只能识别页码

  • ysian 2024-06-21

    thinkphp那边没有注入数量的口子,暂时是没法实现的

释永战

那你需要自己封装一个方法读取地址栏里面的query参数,但是好像没必要,传2个参数而已,在控制器里面获取到了传入就是,又不麻烦

  • 暂无评论
释永战

你是以前玩织梦CMS的那个楚羽幽么?

wekyun

这个分页,他是自动把设定的接受的参数的page当作你分页的页码,不需要你参数给进去!
limit我没试过,你试下回复下我!

我在TP中是这样写的,把这个下面代码写在控制器之前:反正就是把limit接受下,然后动态修改分页的配置!
$limit = input('limit');
if ($limit > 0) config('paginate.list_rows', $limit);

但是因为webman不支持动态修改配置,所以这个方案不行!
你试下前端传,后端不在paginate参数中设置行不行,不过page是自动的!

  • 楚羽幽 2024-06-24

    目前暂时使用了模型基类的方式暂时在前端传参过来后,在模型里面重写了

  • wekyun 2024-06-25

    哦哦

×
🔝