【CakePHP】Pagination(ページネーション)を使用する:基本
バージョン:CakePHP 2.x
CakePHPで検索結果をページングやソートする処理を行う場合には、Pagination機能を使用すると楽に実装できます。
1.コントローラにページネーションの設定を追加する
コントローラに1ページに表示する件数や、データの順序などを設定します。
public $paginate = array( 'モデル名' => array( 'limit' =>10, //1ページ表示できるデータ数の設定 'order' => array('id' => 'asc'), //データを降順に並べる ) );
2.ビューにデータを受け渡す
$this->paginate()でViewにセットします。
$this->set('モデル名',$this->paginate());
3.ビューの表示
prevで前の画面へのリンク、nextで次の画面へのリンクを設定します。
numbersはページ番号が表示されます。
echo $this->Paginator->prev('< 前へ', array(), null, array('class' => 'prev disabled')); echo $this->Paginator->numbers(array('separator' => '')); echo $this->Paginator->next('次へ >', array(), null, array('class' => 'next disabled')); <?php foreach ($Users as $row): ?> //データの表示 <?php echo $row['row']['id']; ?> <?php echo $row['row']['last_name']; ?> <?php echo $row['row']['first_name']; ?> <?php endforeach; ?>
こんな感じで簡単にページング処理が可能です。
▽まとめ
<?php class TestController extends AppController { public $uses = array('Users'); //Paginationの設定 public $paginate = array( 'Users' => array( 'limit' =>10, //1ページ表示できるデータ数の設定 'order' => array('id' => 'asc'), //データを降順に並べる ) ); function beforeFilter(){ parent::beforeFilter(); } function index(){ //データをPaginatorへセット $this->set('Users',$this->paginate()); } }