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

ページネーションを行う (1/5)

作成:2011-12-26 08:13
更新:2011-12-26 08:13

■ページネーションとPaginate

Modelを使って多数のデータを保管するようになってくると、困ってくるのが「多量のデータをどう整理して表示するか」です。findで表示するデータをこまめに区切って表示するというのもひとつの方法ですが、これですべてのデータをきれいに整理し表示するのはなかなか面倒くさいものです。

こうしたデータの整理のための機能として用意されているのが「ページネーション」というものです。要するに「ページ分け」のための機能というわけですね。Modelを使ってデータを管理している場合、CakePHPに標準で用意されているページネーションの機能を利用し、きれいにデータをページ分けして扱うことができるのです。

ページネーションのための機能は、Controllerクラスに「Paginate」として用意されています。これはアクションメソッドで、$thisのメソッドとして用意されます。「$this->paginate()」というように呼び出すことで、現在のページに表示されるデータがまとめて取り出されます。

ページの移動や並び順などは、別途そのための機能が用意されており、データの取得は、常にこの$this->paginate()だけしか使いません。非常にシンプルで使いやすいページネーション機能ですね。

下に、indexアクションでの利用例を挙げておきました。データベースアクセスはわずか1行のみで済みます。(ただし、これで受け取ったデータの表示をビュー側に用意してやる必要があります)

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

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 プログラミング入門」に戻る