ページネーションを行う (1/5)
作成:2011-12-26 08:13
更新:2011-12-26 08:13
更新:2011-12-26 08:13
■ページネーションとPaginate
Modelを使って多数のデータを保管するようになってくると、困ってくるのが「多量のデータをどう整理して表示するか」です。findで表示するデータをこまめに区切って表示するというのもひとつの方法ですが、これですべてのデータをきれいに整理し表示するのはなかなか面倒くさいものです。
こうしたデータの整理のための機能として用意されているのが「ページネーション」というものです。要するに「ページ分け」のための機能というわけですね。Modelを使ってデータを管理している場合、CakePHPに標準で用意されているページネーションの機能を利用し、きれいにデータをページ分けして扱うことができるのです。
ページネーションのための機能は、Controllerクラスに「Paginate」として用意されています。これはアクションメソッドで、$thisのメソッドとして用意されます。「$this->paginate()」というように呼び出すことで、現在のページに表示されるデータがまとめて取り出されます。
ページの移動や並び順などは、別途そのための機能が用意されており、データの取得は、常にこの$this->paginate()だけしか使いません。非常にシンプルで使いやすいページネーション機能ですね。
下に、indexアクションでの利用例を挙げておきました。データベースアクセスはわずか1行のみで済みます。(ただし、これで受け取ったデータの表示をビュー側に用意してやる必要があります)
こうしたデータの整理のための機能として用意されているのが「ページネーション」というものです。要するに「ページ分け」のための機能というわけですね。Modelを使ってデータを管理している場合、CakePHPに標準で用意されているページネーションの機能を利用し、きれいにデータをページ分けして扱うことができるのです。
ページネーションのための機能は、Controllerクラスに「Paginate」として用意されています。これはアクションメソッドで、$thisのメソッドとして用意されます。「$this->paginate()」というように呼び出すことで、現在のページに表示されるデータがまとめて取り出されます。
ページの移動や並び順などは、別途そのための機能が用意されており、データの取得は、常にこの$this->paginate()だけしか使いません。非常にシンプルで使いやすいページネーション機能ですね。
下に、indexアクションでの利用例を挙げておきました。データベースアクセスはわずか1行のみで済みます。(ただし、これで受け取ったデータの表示をビュー側に用意してやる必要があります)
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※indexアクションメソッドの例 public function index() { // レイアウト関係 $this -> layout = "Sample"; $this -> set("header_for_layout", "Sample Application"); $this -> set("footer_for_layout", "copyright by SYODA-Tuyano. 2011."); // 以下がデータベース関係 $this->set('datas', $this->paginate()); }
※関連コンテンツ
「初心者のためのCakePHP2 プログラミング入門」に戻る