cake1.3のシステムをバージョンアップすることになり、upgrade shellでソースコードをcake2用に変換しました。
バージョンアップ後は、cake2.9.3を適用しています。
変換後のシステムでページネーションを使用する画面があり、生成したリンクで先頭ページへのリンクをクリックしたところ、1ページ目への遷移ができませんでした。
以下のようなリンクを生成し、現在2ページ目を表示していたとします。
この状態で、「<<先頭へ」「<前へ」「1」のリンクは、cake1.3では全て1ページ目へ遷移していましたが、バージョンアップ後はどれをクリックしても2ページ目が表示されたままになります。
Viewでのソースコードは以下のようになっています。
PHP
1echo $this->Paginator->first('<< 先頭へ'); 2echo $this->Paginator->prev('< 前へ'); 3echo $this->Paginator->numbers(array('separator' => ' | ', 'modulus' => 4); 4echo $this->Paginator->next('次へ >'); 5echo $this->Paginator->last('最後へ >>');
cakephpのサイトを見たところ、2.4移行ガイド のPaginatorHelperの変更点として、
「最初のページには /page:1 や ?page=1 が含まれなくなりました。」と書かれていました。
確かに、生成されたaタグのhrefにも"page:1"は入っていませんでした。
first(), prev(), numbers()のそれぞれについて、1ページ目へのリンクを生成するには、どのように指定をすればよいでしょうか。
2ページ目が表示された状態での、生成されたページネーション部分のソースコードです。
3ページ目以降には"page"が付いているので遷移できています。
(3ページ目を表示したときには、2ページ目へのリンクには"page"が付きます)
HTML
1<span><a href="/base/searches" rel="first"><< 先頭へ</a></span> 2<span class="prev"><a href="/base/searches" rel="prev">< 前へ</a></span> 3<span><a href="/base/searches">1</a></span> 4 | <span class="current">2</span> 5 | <span><a href="/base/searches/index/page:3">3</a></span> 6 | <span><a href="/base/searches/index/page:4">4</a></span> 7 | <span><a href="/base/searches/index/page:5">5</a></span> 8<span class="next"><a href="/base/searches/index/page:3" rel="next">次へ ></a></span> 9<span><a href="/base/searches/index/page:6" rel="last">最後へ >></a></span>
回答1件
あなたの回答
tips
プレビュー