この質問の報奨金を作成した直後に、CakePHP 2.2.4 を使用して私の問題の解決策を見つけました。私は同じタスクを達成しようとしていましたが、代わりに 2.0 の代わりにバージョン 2.2.4 を使用していました。基本的に、 http://www.domain.com/articles/page:lastのようなリンクがあった場合、コントローラーのページネーション メソッドはどのページに移動するかを認識し、そのページの正しい結果 (記事) を表示します。たとえば、110 件の記事があり、ページネーションの制限が 25 に設定されている場合、その URL に移動すると、5 ページ中 5 ページが表示され、レコード 101 ~ 110 が表示されます。「page:first」に移動する場合にも同じ機能が必要でした。
ライブラリ ファイルlib/Cake/Controller/Component/PaginatorComponent.phpを変更する必要がありました。
私が変更され
if (intval($page) < 1) {
$page = 1;
}
に
if ((intval($page) < 1 && $page != "last") || $page == "first") {
$page = 1;
}
私も追加しました
if($page == "last"){
$page = $pageCount;
}
ラインの後
$pageCount = intval(ceil($count / $limit));
Christian Waschke は、このソリューションを使用して、質問に書いたとおりに同じリンク ヘルパーを使用できます。私にとって、リンクヘルパーはこのように見えました
<?php echo $this->Html->link('Go to Last Page', array('controller' => 'articles', 'action' => 'index', 'page' => 'last')); ?>