0

私は自分のウェブサイトの1つでonappapiを使用しています。次に、ユーザーが購入したサーバーのリストを表示する必要があります。これらのデータを、onappサーバーへのAPI呼び出しからの応答としてオブジェクトとして取得しました。しかし、時にはそれは巨大なリストなので、私はそれをページ付けする必要があります。私の現在のページ付けはデータベース指向であり、特定の数のデータを選択しており、ページに応じて制限が与えられています。しかし、API応答では。一度にすべての回答を得ました。

では、クライアント側のページ付けに依存するのではなく、サーバー側でページ付けするにはどうすればよいですか。

4

1 に答える 1

0

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();

そのため、私は Symfony の sfPager 機能を使い続けています。

于 2012-09-14T08:28:51.307 に答える