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というファイルを作り中身をこんな感じに。

<div id='pagination'>
<?php echo $paginator->prev('<< '.__('previous', true),
    array(),
    null,
    array('class'=>'disabled', 'tag' => 'span')
); ?>
 |
<?php echo $paginator->numbers().
' | '.
$paginator->next(__('next', true).' >>', array(), null, array('tag' => 'span', 'class' => 'disabled'));
?>
</div>

そしたらviewで

<?php echo $this->renderElement('paginator'); ?>

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

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

すごいねー。便利ねー。

Related posts:

  1. Ethnaで手軽にCSRF対策する
  2. Upload PEAR package from CLI
  3. livedoorクリップのAPIを使ってみる
  4. [教えてCakePHP]はびたむでBelongsToManyでの絞り込み
  5. [自己解決しました]はびたむでBelongsToManyでの絞り込み[嘘ですわかりません]

CakePHPのページング処理には1.2からはpaginatorを使え。” への1件のコメント

  1. renderElement(”)が1.3で使えなくて
    element(‘)になったみたいです。。 たぶん。。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ねこ認証:9つのパネルの中からねこを3匹選んでください

Additional comments powered byBackType