libro
www.tuyano.com
初心者のためのCakePHP3 プログラミング入門

ページネーション (4/5)

作成:2015-10-10 09:34
更新:2015-10-10 09:34

■Paginatorヘルパーによるページリンク

ページネーションによるページ分け表示は、思ったよりも簡単にできました。が、これで終わりではありません。これでは、「最初のページ」を表示するだけしかできませんね。ページ分けをするなら、ページを移動するための機能も用意しないといけません。

これも、実は簡単です。CakePHP3には、「Paginatorヘルパー」というヘルパーが用意されています。

ヘルパー」というのは、ビュー(テンプレート)での表示を支援してくれるプログラムです。前にフォームヘルパー(フォームの生成を支援するヘルパー)を使ってフォームを作成しましたね。あれと同じように、ページ移動のリンク作成を支援してくれるのがPaginatorヘルパーです。

では、実際にこれを使ってページ移動のリンクを用意しましょう。テンプレート(index.ctp)を開き、適当なところに、下のリスト欄のタグを記述して下さい。これでページをリロードすれば、ページ移動のリンクが表示されます。「next >>」をクリックすれば次のページに進むし、「<< prev」で前のページに戻ることができます。(ちょっと表示が縦一列になって見づらいですが、この問題は次に処理します)

ここでは、$this->Paginatorというものにあるメソッドを呼び出していますね。この$this->Paginatorが、Paginatorヘルパーのオブジェクトが設定されているプロパティです。ここでは以下のようなメソッドを使っています。

●前のページに戻るリンク
<?= $this->Paginator->prev( 表示テキスト ); ?>
前のページに戻るためのリンクを生成します。引数には、リンクに表示するテキストを指定します。

●次のページに進むリンク
<?= $this->Paginator->next( 表示テキスト ); ?>
次のページに戻るためのリンクを生成します。やはり引数にはリンクに表示するテキストを指定します。

●最初のページに戻るリンク
<?= $this->Paginator->first( 表示テキスト ); ?>
最初のページに戻るリンクを生成します。これは、最初のページが表示されているときは自動的に非表示になります。

●最後のページに進むリンク
<?= $this->Paginator->last( 表示テキスト ); ?>
最後のページに進むリンクを生成します。これは、最後のページが表示されているときは自動的に非表示になります。


●ページ番号のリンク
<?= $this->Paginator->numbers(); ?>
これは、表示されているページの前後のページ番号のリンクを自動的に表示するものです。


――とりあえず、これぐらいを覚えておけば、ページ移動のリンク生成が簡単に行えるようになるでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<?= $this->Paginator->first('<<first'); ?>
<?= $this->Paginator->prev('<prev'); ?>
<?= $this->Paginator->numbers(); ?>
<?= $this->Paginator->next('next>'); ?>
<?= $this->Paginator->last('last>>'); ?>

※関連コンテンツ

「初心者のためのCakePHP3 プログラミング入門」に戻る