Think\Db\Query::paginate PHP Method

paginate() public method

分页查询
public paginate ( integer | null $listRows = null, integer | boolean $simple = false, array $config = [] ) : Collection
$listRows integer | null 每页数量
$simple integer | boolean 简洁模式或者总记录数
$config array 配置参数 page:当前页, path:url路径, query:url额外参数, fragment:url锚点, var_page:分页变量, list_rows:每页数量 type:分页类名
return think\paginator\Collection
    public function paginate($listRows = null, $simple = false, $config = [])
    {
        if (is_int($simple)) {
            $total = $simple;
            $simple = false;
        }
        $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();
            $total = $this->count();
            $bind = $this->bind;
            $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);
    }