本文整理汇总了PHP中Pagerfanta\Pagerfanta::getCurrentPage方法的典型用法代码示例。如果您正苦于以下问题:PHP Pagerfanta::getCurrentPage方法的具体用法?PHP Pagerfanta::getCurrentPage怎么用?PHP Pagerfanta::getCurrentPage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pagerfanta\Pagerfanta
的用法示例。
在下文中一共展示了Pagerfanta::getCurrentPage方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
public function __construct(Pagerfanta $paginator, Request $request, $base_url)
{
$this->data = $paginator->getCurrentPageResults();
$this->total_count = $paginator->getNbResults();
$this->count = count($this->data);
$query = array('q' => $request->get('q'), 'limit' => $request->get('limit'), 'page' => $request->get('page'));
$this->query = $query;
$this->urls['current'] = $base_url . '?' . http_build_query($query);
if ($paginator->hasPreviousPage()) {
$query['page'] = $paginator->getPreviousPage();
$this->urls['previous'] = $base_url . '?' . http_build_query($query);
if ($paginator->getCurrentPage() > 2) {
$query['page'] = 1;
$this->urls['start'] = $base_url . '?' . http_build_query($query);
}
}
if ($paginator->hasNextPage()) {
$query['page'] = $paginator->getNextPage();
$this->urls['next'] = $base_url . '?' . http_build_query($query);
if ($paginator->getCurrentPage() < $paginator->getNbPages() - 1) {
$query['page'] = $paginator->getNbPages();
$this->urls['end'] = $base_url . '?' . http_build_query($query);
}
}
}
示例2: createRepresentationFromPagerfanta
public function createRepresentationFromPagerfanta(Pagerfanta $pager)
{
$this->pager = empty($pager) ? $this->pager : $pager;
if (empty($this->pager)) {
return array();
}
$representation = array('hasToPaginate' => $this->pager->haveToPaginate(), 'hasNextPage' => $this->pager->hasNextPage(), 'hasPreviousPage' => $this->pager->hasPreviousPage(), 'totalItems' => $this->pager->getNbResults(), 'itemsPerPage' => $this->pager->getMaxPerPage(), 'currentPage' => $this->pager->getCurrentPage(), 'data' => $this->pager->getCurrentPageResults());
return $representation;
}
示例3:
public function testSetCurrentPageShouldNormalizePageWhenOutOfRangePageAndIndicatingNormalizeOutOfRangePagesWithDeprecatedBooleansArguments()
{
$this->setAdapterNbResultsAny(100);
$this->pagerfanta->setMaxPerPage(10);
$this->pagerfanta->setCurrentPage(11, false, true);
$this->assertSame(10, $this->pagerfanta->getCurrentPage());
}
示例4: createRepresentation
/**
* @param Pagerfanta $pager The pager
* @param Route $route The collection's route
* @param mixed $inline Most of the time, a custom `CollectionRepresentation` instance
*
* @return PaginatedRepresentation
*/
public function createRepresentation(Pagerfanta $pager, Route $route, $inline = null)
{
if (null === $inline) {
$inline = new CollectionRepresentation($pager->getCurrentPageResults());
}
return new PaginatedRepresentation($inline, $route->getName(), $route->getParameters(), $pager->getCurrentPage(), $pager->getMaxPerPage(), $pager->getNbPages(), $this->getPageParameterName(), $this->getLimitParameterName(), $route->isAbsolute(), $pager->getNbResults());
}
示例5: __construct
public function __construct(Pagerfanta $pagerfanta)
{
$photos = $pagerfanta->getCurrentPageResults();
$this->photos = $photos instanceof \Traversable ? iterator_to_array($photos) : $photos;
$this->page = $pagerfanta->getCurrentPage();
$this->pagesCount = $pagerfanta->getNbPages();
$this->totalCount = $pagerfanta->getNbResults();
}
示例6: paginate
/**
* @param Request $request
* @param AdapterInterface $adapter
* @param string|null $route
*
* @return PaginatedRepresentation
*/
protected function paginate(Request $request, AdapterInterface $adapter, $route = null, $routeParameters = null)
{
$pagerfanta = new Pagerfanta($adapter);
$pagerfanta->setMaxPerPage($request->query->get(self::LIMIT_PARAMETER, 5));
$pagerfanta->setCurrentPage($request->query->get(self::PAGE_PARAMETER, 1));
$collection = new CollectionRepresentation($pagerfanta->getCurrentPageResults());
$paginated = new PaginatedRepresentation($collection, $route ?? $request->get('_route'), $routeParameters ?? $request->attributes->get('_route_params'), $pagerfanta->getCurrentPage(), $pagerfanta->getMaxPerPage(), $pagerfanta->getNbPages(), self::PAGE_PARAMETER, self::LIMIT_PARAMETER, false, $pagerfanta->count());
return $paginated;
}
示例7: getNavigationLinks
private function getNavigationLinks(Pagerfanta $pager, array $params = array())
{
$page = $pager->getCurrentPage();
$limit = $pager->getMaxPerPage();
$links = [];
if ($pager->getCurrentPage() > 1) {
$links['first'] = $this->generateUrl('app_api_categories', array_merge($params, ['offset' => $this->getOffset(1, $limit)]));
}
if ($pager->hasPreviousPage()) {
$links['previous'] = $this->generateUrl('app_api_categories', array_merge($params, ['offset' => $this->getOffset($pager->getPreviousPage(), $limit)]));
}
if ($pager->hasNextPage()) {
$links['next'] = $this->generateUrl('app_api_categories', array_merge($params, ['offset' => $this->getOffset($pager->getNextPage(), $limit)]));
}
if ($pager->getNbPages() != $page) {
$links['last'] = $this->generateUrl('app_api_categories', array_merge($params, ['offset' => $this->getOffset($pager->getNbPages(), $limit)]));
}
return $links;
}
示例8: createPaginatedRepresentation
/**
* @param Pagerfanta $object
*
* @return PaginatedRepresentation
*/
protected function createPaginatedRepresentation($object)
{
if (!$object instanceof Pagerfanta) {
return;
}
$items = $object->getCurrentPageResults();
if ($items instanceof \ArrayIterator) {
$items = $items->getArrayCopy();
}
return new PaginatedRepresentation($items, $object->getCurrentPage(), $object->getMaxPerPage(), $object->getNbPages(), $object->getNbResults());
}
示例9: serializePagerfanta
/**
* @param JsonApiSerializationVisitor $visitor
* @param Pagerfanta $pagerfanta
* @param array $type
* @param Context $context
* @return Pagerfanta
*/
public function serializePagerfanta(JsonApiSerializationVisitor $visitor, Pagerfanta $pagerfanta, array $type, Context $context)
{
$request = $this->requestStack->getCurrentRequest();
$pagerfanta->setNormalizeOutOfRangePages(true);
$pagerfanta->setAllowOutOfRangePages(true);
$pagerfanta->setMaxPerPage($request->get('page[limit]', $this->paginationOptions['limit'], true));
$pagerfanta->setCurrentPage($request->get('page[number]', 1, true));
$results = $pagerfanta->getCurrentPageResults();
if ($results instanceof \ArrayIterator) {
$results = $results->getArrayCopy();
}
$data = $context->accept($results);
$root = $visitor->getRoot();
$root['meta'] = array('page' => $pagerfanta->getCurrentPage(), 'limit' => $pagerfanta->getMaxPerPage(), 'pages' => $pagerfanta->getNbPages(), 'total' => $pagerfanta->getNbResults());
$root['links'] = array('first' => $this->getUriForPage(1), 'last' => $this->getUriForPage($pagerfanta->getNbPages()), 'prev' => $pagerfanta->hasPreviousPage() ? $this->getUriForPage($pagerfanta->getPreviousPage()) : null, 'next' => $pagerfanta->hasNextPage() ? $this->getUriForPage($pagerfanta->getNextPage()) : null);
$visitor->setRoot($root);
return $data;
}
示例10: addPagination
protected function addPagination(Request $request, Pagerfanta $pager, $resource)
{
$route = $request->attributes->get('_route');
$params = $request->attributes->get('_route_params');
$params = array_merge($params, $request->query->all());
$resource->setMetaValue('page', $pager->getCurrentPage());
$resource->setMetaValue('count', $pager->getNbResults());
$resource->setMetaValue('nextPage', null);
$resource->setMetaValue('previousPage', null);
$resource->setMetaValue('next', null);
$resource->setMetaValue('previous', null);
if ($pager->hasNextPage()) {
$resource->setMetaValue('next', $this->generateUrl($route, array_replace($params, ['page' => $pager->getNextPage(), 'limit' => $pager->getMaxPerPage()]), true));
$resource->setMetaValue('nextPage', $pager->getNextPage());
}
if ($pager->hasPreviousPage()) {
$resource->setMetaValue('previous', $this->generateUrl($route, array_replace($params, ['page' => $pager->getPreviousPage(), 'limit' => $pager->getMaxPerPage()]), true));
$resource->setMetaValue('previousPage', $pager->getPreviousPage());
}
}
示例11: create
public function create(Pagerfanta $pager, $route, array $routeParameters = array())
{
return new PaginatedCollection($pager->getCurrentPageResults(), $route, $routeParameters, $pager->getCurrentPage(), $pager->getMaxPerPage(), $pager->getNbPages(), $this->pageParameterName, $this->limitParameterName);
}
示例12: createView
/**
* Creates and returns the table view.
*
* @param Request $request
* @throws RuntimeException
* @return TableView
*/
public function createView(Request $request = null)
{
if (null !== $request) {
$this->requestHelper->setRequest($request);
}
$view = new TableView();
$view->name = $this->getName();
$view->options = ['selector' => $this->config->getSelector()];
$view->selection_form = $this->config->getSelector();
if (!$this->config->hasColumns()) {
throw new RuntimeException('Table has no columns and cannot be generated.');
}
$class = $this->config->getDataClass();
$alias = strtolower(substr($class, strrpos($class, '\\') + 1, 1));
// TODO What if data is already set ?
$queryBuilder = $this->entityManager->createQueryBuilder()->select($alias)->from($this->config->getDataClass(), $alias);
if (null !== ($customizeQb = $this->config->getCustomizeQb())) {
$customizeQb($queryBuilder, $alias);
}
$this->generateFilters($queryBuilder, $view);
$this->generateColumns($queryBuilder, $view);
$currentPage = $this->requestHelper->getVar($this->getName() . '_page', 1);
/*$dql = $queryBuilder->getQuery()->getDQL();
var_dump($dql);
exit();*/
$adapter = new DoctrineORMAdapter($queryBuilder);
$pager = new Pagerfanta($adapter);
$pager->setNormalizeOutOfRangePages(true)->setMaxPerPage($this->config->getMaxPerPage())->setCurrentPage($currentPage);
$this->setData($pager->getCurrentPageResults());
if ($currentPage != $pager->getCurrentPage()) {
$this->requestHelper->setVar($this->getName() . '_page', $pager->getCurrentPage());
}
$view->pager = $pager;
$this->generateCells($view);
return $view;
}
示例13: key
/**
* {@inheritdoc}
*/
public function key()
{
return $this->pager->getCurrentPage();
}
示例14: configureCollectionRepresentation
protected function configureCollectionRepresentation(CollectionRepresentation $collectionRepresentation, Pagerfanta $pager, $entity = null, $collectionRel = null)
{
// Properties
$collectionRepresentation->total = $pager->getNbResults();
$collectionRepresentation->page = $pager->getCurrentPage();
$collectionRepresentation->limit = $pager->getMaxPerPage();
// Links between pages
$createRoute = function ($page, $limit) use($entity, $collectionRel) {
$parameters = array('search' => array('page' => $page, 'limit' => $limit));
return null !== $entity && null !== $collectionRel ? $this->getUrlGenerator()->generateEntityCollectionUrl($entity, $collectionRel, $parameters) : $this->getUrlGenerator()->generateCollectionUrl($parameters);
};
$collectionRepresentation->addLink($this->atomLinkFactory->create('self', $createRoute($pager->getCurrentPage(), $pager->getMaxPerPage())));
if ($pager->hasNextPage()) {
$collectionRepresentation->addLink($this->atomLinkFactory->create('next', $createRoute($pager->getNextPage(), $pager->getMaxPerPage())));
}
if ($pager->hasPreviousPage()) {
$collectionRepresentation->addLink($this->atomLinkFactory->create('previous', $createRoute($pager->getPreviousPage(), $pager->getMaxPerPage())));
}
$collectionRepresentation->addLink($this->atomLinkFactory->create('first', $createRoute(1, $pager->getMaxPerPage())));
$collectionRepresentation->addLink($this->atomLinkFactory->create('last', $createRoute($pager->getNbPages(), $pager->getMaxPerPage())));
}
示例15: serializeToArray
public function serializeToArray(GenericSerializationVisitor $visitor, Pagerfanta $pager, array $type, Context $context)
{
$resultsType = array('name' => 'array');
if (isset($type['params'])) {
$resultsType['params'] = $type['params'];
}
$shouldSetRoot = null === $visitor->getRoot();
$data = array('page' => $pager->getCurrentPage(), 'limit' => $pager->getMaxPerPage(), 'total' => $pager->getNbResults(), 'results' => $visitor->getNavigator()->accept($pager->getCurrentPageResults(), $resultsType, $context));
if (null !== ($links = $this->linkEventSubscriber->getOnPostSerializeData(new ObjectEvent($context, $pager, $type)))) {
$data[$this->linksJsonKey] = $links;
}
if (null !== ($relations = $this->embedderEventSubscriber->getOnPostSerializeData(new ObjectEvent($context, $pager, $type)))) {
$data[$this->relationsJsonKey] = $relations;
}
if ($shouldSetRoot) {
$visitor->setRoot($data);
}
return $data;
}