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

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

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

■$paginatorによる初期設定

実際にやってみるとわかることですが、このページネーション機能では、20項目ごとにページ分けがされます。まぁ、これで困るということはあまり無いでしょうが、場合によってはもっとページあたりの項目数を少なくしたり、多くしたりしたいこともあるでしょう。また、全データではなく、特定の条件で絞り込んだものをページ分けして表示したい、というようなこともあるかも知れません。

そのような場合のために、CakePHPでは、ページネーションの諸設定を用意しておけるようになっています。これは、Controllerクラスに「$paginator」という変数として用意されます。

下に簡単な例を挙げておきました。この$paginate変数を、MySampleDatasController
クラスのメンバー変数として記述してください。そしてアクセスすると、”ko”で終わる項目だけを5項目ずつ表示します。

この$paginate変数に用意しておける設定項目には以下のようなものがあります。

page――初期状態で表示されるページ番号。デフォルトは1ページ目が設定されています。
conditions――データの検索条件を指定します。これはfindの検索などと同じように設定します。ここでは、array("MySampleData.name like '%ko'")というようにしていますね。
fields――取得するデータの項目名を配列で指定します。
sort――データのソートの指定です。項目名を指定することで、その項目でデータを並べ替えます。
limit――表示する項目数を指定します。
direction――sortで並べ軽方向を指定します。ascなら昇順、descなら降順となります。
recursice――再帰的な読み込み深度を指定します。複数モデルが連携されているような場合にどこまでデータを読み取っていくかということです。

ここでは、pagelimitconditionsをそれぞれ指定することで、独自に絞り込んだデータだけを指定の数だけ表示させるようにしてあります。$paginateは、ページネーションの設定の基本となるものですので、今回使った3つぐらいはしっかり覚えておくと重宝するでしょう。

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

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

●プログラム・リスト●

※MySampleDatasControllerに要する変数

public $paginate = array('page' => 1, 'limit' =>5, 
    'conditions'=>array("MySampleData.name like '%ko'"));

※関連コンテンツ

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