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; return $this->url . '?' . http_build_query($this->params); } }