我在我的一个网站上使用 onapp api。现在我需要显示用户购买的服务器列表。我将这些数据作为对象作为 API 调用对 onapp 服务器的响应。但有时,这是一个巨大的列表,所以我需要对它进行分页。我当前的分页是面向数据库的,它正在选择特定数量的数据,并根据页面给出限制。但在 api 响应中。我一次得到了所有的回应。
那么如何在服务器端分页而不是依赖于客户端分页..?
我在我的一个网站上使用 onapp api。现在我需要显示用户购买的服务器列表。我将这些数据作为对象作为 API 调用对 onapp 服务器的响应。但有时,这是一个巨大的列表,所以我需要对它进行分页。我当前的分页是面向数据库的,它正在选择特定数量的数据,并根据页面给出限制。但在 api 响应中。我一次得到了所有的回应。
那么如何在服务器端分页而不是依赖于客户端分页..?
从 SF1.4 调用 Web 服务时,我必须做同样的事情,但在我的情况下,WS 承认分页参数。无论如何,我想在结果中使用 sfPager,所以我创建了一个继承自 sfPager 的类:
class sfWSPager extends sfPager {
public function getResults() {
return $this->results;
}
public function init() {
if (0 == $this->getPage() || 0 == $this->getMaxPerPage() || 0 == $this->getNbResults())
$this->setLastPage(0);
else {
$this->setLastPage(ceil($this->getNbResults() / $this->getMaxPerPage()));
}
}
public function setResults($results) {
$this->results = $results;
}
public function setNbResults($nb) {
parent::setNbResults($nb);
}
}
然后在我的行动中:
$this->pager = new sfWSPager(null);
$this->pager->setResults($dataResultsFromWS);
$this->pager->setNbResults($totalNbOfResults);
$this->pager->setPage($page);
$this->pager->init();
所以我一直在使用 Symfonys 的 sfPager 功能。