【CakePHP2.2】Paginatorヘルパーとコンポーネントでページ送りを実装する


今までCakePHPを使用してきて、ページ送りを実装したことがなかったのですが、今回実装する機会がありましたのでそれをまとめようと思います。
ページ送りというのは以下のようなやつです。

検索結果とかによく実装されているやつですね。

ただこれを自分で実装しようとすると、自分で全て計算し、例えば10件表示させようと思ってるけど、少し足りない場合はどうするか、とか色々面倒なことになってしまいます。
そこでCakePHPに準備されている、PaginatorヘルパーとPaginatorコンポーネントでさくっとページ送りを実装していこうと思います。

今回作成するページ送りは主に検索結果を表示することを想定して作っています。

まずは検索ボックスとなるビューを作成しましょう。

View/Posts/search.ctp

次にGETで送信された値を検索してみましょう。
例えば以下のようにControllerを書きます。

Controller/PostsController.php

あとはビューで結果を表示するだけです。
以下のようにしましょう。

View/Posts/search.ctp

これで以下のようなページ送りを実装することが出来ました。

この状態では次のようなURLになっていると思います。

/posts/search/page:3?title=hogehoge

それを以下のようなURLにしましょう。

/posts/search?title=hogehoge&page=3

次のコードをControllerに書きましょう。

これでURLがGET風になりました!

以下が参考にした記事です。

参考

Pagination – CakePHP公式ドキュメント(英語)

更新情報はFacebookページで!

ブログの更新、読んで役立つ他ブログの記事などを更新しています。




関連のある記事


質問があればこちらからどうぞ

コメントを残す

メールアドレスが公開されることはありません。


*