分页无法在php中获得以前的光标Google App引擎

问题描述 投票:0回答:1

您好,在Google App Engine中实现了分页

使用此代码

https://github.com/GoogleCloudPlatform/php-docs-samples/blob/master/datastore/api/src/functions/concepts.php

function cursor_paging(DatastoreClient $datastore, $pageSize, $pageCursor = '')
{
    $query = $datastore->query()
        ->kind('Task')
        ->limit($pageSize)
        ->start($pageCursor);
    $result = $datastore->runQuery($query);
    $nextPageCursor = '';
    $entities = [];
    /* @var Entity $entity */
    foreach ($result as $entity) {
        $nextPageCursor = $entity->cursor();
        $entities[] = $entity;
    }
    return array(
        'nextPageCursor' => $nextPageCursor,
        'entities' => $entities
    );
}

获取下一个光标,但没有从此获得上一个光标

php google-app-engine pagination app-engine-ndb
1个回答
0
投票

实际上,处理上一个游标是一个问题-即使在其他语言中,对数据进行分页时,这似乎也是更大的问题。互联网上也没有太多有关如何实现这一目标的数据或文章。

我将尽我所能解释,我相信您可以利用的可能性。

  1. 根据社区here的另一个问题,您可以在上一页信息中创建一个新的光标,因此可以将其用于分页。这意味着您现在将拥有三个光标:$pageCursor$nextPageCursor$previousPageCursor。像这样使用,在设置下一页之前,您应该能够保留实际数据。
  2. [此外,PHP中有reverse method可能会对您有所帮助,以防万一您想计算应用程序中有多少页并将其倒退到上一个光标中。这样,您将获得颠倒的顺序,也可以在分页中使用-我仍然相信,尝试第一种方法是最好的。

我从社区中发现了其他有用的问题,这些问题可能会帮助您实现目标-我认为也值得一看。

让我知道信息是否对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.