2012-09-11 66 views
0

我正在使用onapp api與我的一個網站。現在我需要顯示用戶購買的服務器列表。作爲API調用onapp服務器響應的對象,我獲得了這些數據。但有時候,這是一個巨大的列表,所以我需要對它進行分頁。我目前的分頁是面向數據庫的,它選擇特定數量的數據,並根據頁面給出限制。但在API響應。我一次都得到了所有的答覆。分頁API響應

那麼我怎麼能在服務器端分頁,而不是依賴於客戶端分頁..?

回答

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

所以我一直使用Symfonys sfPager能力。

+0

是的。這似乎更好。其實我解決了這個問題。我所做的是我在一段時間內獲取所有結果,然後使用array_chunks對其進行分割。現在,通過比較頁碼和索引值將一個塊分配給模板。它正在工作,但表現很差。我會試試這個。感謝您的答案兄弟。 –