Attention! Translated article might be found on my English blog.

2015年1月28日水曜日

CakePHPでデータ出力件数を制限する

件数制限というよりはページャの話です。

参考: ページ付け(Pagination) — CakePHP Cookbook 1.3 ドキュメント

コントローラのpaginateプロパティでlimitとorderを指定する。orderも必須なようだ。

入門ページのブログチュートリアル(入門 — CakePHP Cookbook 2.x ドキュメント)を例にとると、PostsControllerのpaginateを例えば以下のように指定する。

    var $paginate = array(
        'limit' => 10,
        'order' => array(
            'Post.id' => 'asc'
        )

    );

出力数を制限したindex()

$this->set('posts', $this->Post->find('all'));



$this->set('posts', $this->paginate('Post'));

に変更する。これでひとまず件数を制限できる。
$this->Post->xxxxという形で書かないのはpaginatorがコントローラに紐付いてるからでしょうかね。