2012-12-20 49 views
1

我使用CakePHP2,並沒有找到如何更改(重新配置)分頁限制,例如,從20到30CakePHP的分頁全局配置

有一個「全局默認限制」設置的記錄數量成「paginator」(PaginatorHelper?)?

「global」意思是「全部網站」。

+2

您還沒有通讀CakePHP文檔的頁面呢? http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html –

+0

是......「CakePHP中的分頁由控制器中的組件提供」。但作爲一個框架,它可以提供另一種「重新配置」所有站點的機制,而不是每個控制器。 –

回答

2

綜觀對CakePHP的分頁程序組件的代碼,它看起來像你可以在控制器中使用以下語法設置全侷限制(最好的地方將是你的AppController):

... 
public $paginate=array(); 
... 
public function beforeFilter() { 
    parent::beforeFilter(); 
    $this->paginate['limit'] = 15; 
} 

我沒有測試過它,但希望它可以按需要工作。

+0

哼...在app/Controller/AppController.php上測試,在beforeFilter()方法上添加...全局錯誤:「間接修改重載屬性......沒有任何效果」。 –

+0

如果使用before過濾器,只需在'AppController'中放置'public $ paginate = array();';這個錯誤然後解決。再次,[閱讀文檔](http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html)。這是所有 – Ross

+1

根據[this](https://groups.google.com/forum/?fromgroups=#!topic/cake-php/Fxh_ldO9noU)$ this-> paginate ['limit'] = 15;和parent :: beforeFilter();在每個控制器的beforeFilter回調之前 – erem

3

在你的控制器

public $paginate = array('limit' => 25); 
+0

是的,這是本地的,但我需要「全球」,適用於所有網站。 –

+1

這就是應用程序控制器的用途。 – dogmatic69

+0

我用AppController.php測試並確定!抱歉,我的投票是針對@Martin的。你什麼都不說,只有「你的控制器」......它被理解爲「特定的」,我(和任何其他Cake初學者)不知道AppController是「全局配置位置」。 –