public function addPagerNavigationRelations(PagerfantaInterface $pager, $route, $routeParameters = array(), $pageParameterName = null, $limitParameterName = null) { if (null === $pageParameterName) { $pageParameterName = $this->defaultPageParameterName; } if (null === $limitParameterName) { $limitParameterName = $this->defaultLimitParameterName; } if (!isset($routeParameters[$pageParameterName])) { $routeParameters[$pageParameterName] = $pager->getCurrentPage(); } if (!isset($routeParameters[$limitParameterName])) { $routeParameters[$limitParameterName] = $pager->getMaxPerPage(); } $this->add('self', array('route' => $route, 'parameters' => $routeParameters)); $this->add('first', array('route' => $route, 'parameters' => array_merge($routeParameters, array($pageParameterName => '1')))); $this->add('last', array('route' => $route, 'parameters' => array_merge($routeParameters, array($pageParameterName => $pager->getNbPages() > 0 ? $pager->getNbPages() : 1)))); if ($pager->hasPreviousPage()) { $this->add('previous', array('route' => $route, 'parameters' => array_merge($routeParameters, array($pageParameterName => $pager->getPreviousPage())))); } if ($pager->hasNextPage()) { $this->add('next', array('route' => $route, 'parameters' => array_merge($routeParameters, array($pageParameterName => $pager->getNextPage())))); } }