2014-02-19 72 views
0

我有分頁功能,代碼中的一些奇怪的問題:CakePHP的分頁

$this->Paginator->settings = array(
    'Visit' => array(
     'limit' => 10 
    ) 
); 
$visits = $this->Paginator->paginate('Visit'); 
echo count($visits); 

和計數給我:第1頁= 0,2 = 6頁,3 = 10頁,4 = 7頁, ... 爲什麼?我認爲paginator id做的是這樣的:

SELECT * FROM visits LIMIT 10 OFFSET pageNumber 

我有4個realtables與訪問表,也許這是一個問題?

+0

對我來說工作得很好,每個頁面的'count($ visits)'上都有相同的數字,而sql是'SELECT * FROM訪問限制{$ offset},{$ limit}'。這只是一個「我想知道」的問題嗎?或者,這是否會給您提供錯誤(例如每頁的訪問次數不同或類似情況)?如果這給你一個實際的錯誤,你能詳細說明一下嗎? – Nunser

+0

它給了我錯誤...我在每一頁上都有不同的記數器 編輯:我的意思是不同=它不是10個接觸者,例如。對於16頁我有一個頁面訪問十個 – tommy

+0

嘗試$訪問= $ this-> paginate();而不是$ visits = $ this-> Paginator-> paginate('Visit'); – Fury

回答

0

我發現了它。有人通過AppModel類中的afterFind函數從return中返回一些元素。我檢查了VisitModell類,但沒有檢查upclass,該死的......太愚蠢了。所以很抱歉浪費你的時間。

0

試試這個

$this->paginate = array('conditions'=>array(
    'all conditions'..., 
    ), 
    'limit' => 10, 
    'recursive'=> 0 or -1 
)); 
$this->Paginator->settings = $this->paginate; 
$visits = $this->Paginator->paginate('Visit'); 
echo count($visits); 
+0

不幸的是,我仍然得到了相同的結果 – tommy

+0

你想分配你的條件只有分頁嗎? – Fury