//分页配置在app/config.php
‘paginate‘ => [ ‘type‘ => ‘\cmf\paginator\Bootstrap‘, ‘var_page‘ => ‘page‘, ‘list_rows‘ => 15, ],
//分页调用 think/db/Query.php
/** * 分页查询 * @param int|array $listRows 每页数量 数组表示配置参数 * @param int|bool $simple 是否简洁模式或者总记录数 * @param array $config 配置参数 * page:当前页, * path:url路径, * query:url额外参数, * fragment:url锚点, * var_page:分页变量, * list_rows:每页数量 * type:分页类名 * @return \think\Paginator * @throws DbException */ public function paginate($listRows = null, $simple = false, $config = []) { if (is_int($simple)) { $total = $simple; $simple = false; } if (is_array($listRows)) { $config = array_merge(Config::get(‘paginate‘), $listRows); $listRows = $config[‘list_rows‘]; } else { $config = array_merge(Config::get(‘paginate‘), $config); $listRows = $listRows ?: $config[‘list_rows‘]; } /** @var Paginator $class */ $class = false !== strpos($config[‘type‘], ‘\\‘) ? $config[‘type‘] : ‘\\think\\paginator\\driver\\‘ . ucwords($config[‘type‘]); $page = isset($config[‘page‘]) ? (int) $config[‘page‘] : call_user_func([ $class, ‘getCurrentPage‘, ], $config[‘var_page‘]); $page = $page < 1 ? 1 : $page; $config[‘path‘] = isset($config[‘path‘]) ? $config[‘path‘] : call_user_func([$class, ‘getCurrentPath‘]); if (!isset($total) && !$simple) { $options = $this->getOptions(); unset($this->options[‘order‘], $this->options[‘limit‘], $this->options[‘page‘], $this->options[‘field‘]); $bind = $this->bind; $total = $this->count(); $results = $this->options($options)->bind($bind)->page($page, $listRows)->select(); } elseif ($simple) { $results = $this->limit(($page - 1) * $listRows, $listRows + 1)->select(); $total = null; } else { $results = $this->page($page, $listRows)->select(); } return $class::make($results, $listRows, $page, $total, $simple, $config); }
$class = false !== strpos($config[‘type‘], ‘\\‘) ? $config[‘type‘] : ‘\\think\\paginator\\driver\\‘ . ucwords($config[‘type‘]);
通过配置的路径加载分页类
$userQuery = Db::name("mall_order");
$where=$where?$where:[‘user_id‘ => $userId];
$order=$order?$order:‘id desc‘;
$orderlist = $userQuery->where($where)->order($order)->paginate(10);
$data[‘page‘] = $orderlist->render(); //分页
$data[‘lists‘] = $orderlist->items();