分页没有在PHP中获取以前的光标谷歌应用程序引擎

时间:2020-03-26 05:39:20

标签: php google-app-engine pagination app-engine-ndb

嗨,您已经在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
    );
}

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

1 个答案:

答案 0 :(得分:0)

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

我会尽我所能地向您解释,我相信您可以利用这些可能性。

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

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

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

相关问题