カテゴリー
PHP

CakePHPのページング処理には1.2からはpaginatorを使え。

ちょっとページング処理を入れる必要が出てきて、PEAR::PagerでもいいんだけどCakeのinclude_pathってPEARと相性悪いのでさてさてどうしようと思ってぐぐったらtoyosystem | CakePHP::Pagenation(ページャ、ページング処理)という記事が出てきて、paginationコンポーネント、ヘルパー、エレメントを指定の場所に置いてテケテケっとするとページングが出来るという内容で、「私が探し求めていたのはまさにこれだ!」というわけで速攻で使ったのですが、すべて実装が終わったあとにPaginatorの使い方。CakePHP1.2 – CPA-LABテクニカルなどというエントリを発見。1.2からはpager内蔵らしいです。
使い方は内蔵されてる分paginationよりさらに簡単。

controllerはこんな感じ。5件ずつ表示したい。

   function index()
   {   
       $this->paginate['limit'] = 5;
       $this->set('items', $this->paginate());
   }

elements/paginator.ctpというファイルを作り中身をこんな感じに。


そしたらviewで

renderElement('paginator'); ?>

とするだけ。ね、簡単でしょう?

わかりづらいのはcontrollerの所。普通の findAll() の変わりに paginate() を使う。詳細は上で紹介したブログに書いてある。

すごいねー。便利ねー。

作成者: halt

PHPプログラマ。