1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-24 20:06:09 +08:00
2020-03-16 15:33:36 +08:00

62 lines
1.4 KiB
PHP

<?php
namespace App\Library\Paginator\Adapter;
use Phalcon\Http\Request as HttpRequest;
use Phalcon\Paginator\Adapter\QueryBuilder as BaseQueryBuilder;
class QueryBuilder extends BaseQueryBuilder
{
protected $url;
protected $params = [];
public function paginate()
{
$pager = parent::paginate();
$this->initParams();
$pager->first = $this->buildPageUrl($pager->first);
$pager->previous = $this->buildPageUrl($pager->previous);
$pager->next = $this->buildPageUrl($pager->next);
$pager->last = $this->buildPageUrl($pager->last);
return $pager;
}
protected function initParams()
{
$request = new HttpRequest();
$params = $request->get();
if ($params) {
foreach ($params as $key => $value) {
if (strlen($value) == 0) {
unset($params[$key]);
}
}
}
$this->params = $params;
if (!empty($this->params['_url'])) {
$this->url = $this->params['_url'];
unset($this->params['_url']);
} else {
$this->url = $request->get('_url');
}
}
protected function buildPageUrl($page)
{
$this->params['page'] = $page;
$queryUrl = $this->url . '?' . http_build_query($this->params);
return $queryUrl;
}
}