如果有人對cakephp 1.3的這個問題感興趣,我會根據@ndm answer來解釋我的解決方案。
的情況是以下
- 分頁方法都不盡如人意,所以我需要重寫它
- 我不想更新的蛋糕\ Controller.php這樣的文件,因爲當我更新最後1.3分支的版本(如果有的話),我將不得不重新編寫它,問題是我可能會忘記去做。
- 我不想在app_controller中編譯修復程序,因爲分頁方法太長,代碼感覺嘈雜。
因此,我決定創建一個新的PageController,它將擴展Controller類,並將由AppController進行擴展。
在這個文件中,我把整個PAGINATE方法,使一個單一的和容易解決,只需點@ndm提前:
if ($page >= $pageCount)
{
return array(); //return empty array, so no rows found.
}
if ($page === 'last') {
$options['page'] = $page = $pageCount;
} elseif (intval($page) < 1) {
$options['page'] = $page = 1;
}
最後我用包括幫助AppController中發現PagerController:
<?php
include("pager_controller.php");
class AppController extends PagerController
{
.....
}
它的工作完美,我可以毫不猶豫地更新cakephp 1.3版本(再次發生),也沒有看到醜陋的分頁方法的編碼。
希望它能幫助你
你是否直接在url中寫入頁碼。因爲cakephp分頁只會顯示確切的頁數 – 2015-04-01 12:17:43
是的,我正在編寫數字,用於測試目的,即使這不應該發生,事實是爬蟲可以找到這種類型的URL,所以我不會想要擁有多個具有相同內容的網址,對於SEO太差 – Balder 2015-04-01 12:44:05
可以通過設置分頁的最大限制屬性來限制此解決方案。嘗試它並檢查 – 2015-04-01 13:22:55