2012-01-06 48 views
0

我正在使用一個可容納的分頁操作,而afterFind()用於刪除我的記錄中的空數組,但這會導致分頁問題。CakePHP afterFind()殺死了總分頁數

這是afterFind功能:

function afterFind($results, $primary=false) { 

     if ($primary == true) { 
      foreach ($results as $key => $value) { 
       if (empty($value['Orderstatus'])) { 
        unset($results[$key]); //removing record if the orderstatus is empty 
       } 
      } 
     } 
     return $results; 
    } 

的四個記錄在取予除去只有一個空數組(記錄),

總記錄在數據庫中的總計4個
除去記錄之後,使用找到被1

剩餘的記錄3
PAGINATE限制爲2

它顯示了我的第一頁中的兩條記錄,但我無法訪問第二頁或應該在第二頁中的最後一條記錄。

+0

does debug($ yourPaginatedData);顯示正確的結果計數.. – 2012-01-06 09:43:32

+0

不,我用debug($ this-> paginate());在我的控制器中,它只顯示兩個記錄,無論我在分頁中提到的限制只記錄多少條記錄。但期待三個記錄..這是正確的方法來調試整個分頁結果? – msmohan 2012-01-06 09:51:46

+0

嘗試將您的限制更改爲10,然後查看調試結果。它是什麼顯示.. – 2012-01-06 09:56:24

回答

0

看起來您已經取消了分頁所需的行。我建議你爲模型製作自定義分頁功能(覆蓋默認的CakePHP分頁)。請參閱此處的示例鏈接:Forced Paginate Count

希望它有助於解決您的問題。

+0

好的,我會盡量讓它作爲自定義分頁,謝謝你的回覆。 – msmohan 2012-01-06 10:54:14

0

爲什麼不在查詢中工作條件,這樣沒有OrderStatus的記錄不會返回到開頭?