1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-23 20:00:27 +08:00
2020-01-30 16:51:10 +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
{
private $url;
private $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;
}
private 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');
}
}
private function buildPageUrl($page)
{
$this->params['page'] = $page;
$queryUrl = $this->url . '?' . http_build_query($this->params);
return $queryUrl;
}
}