pagenatorのメモ。
◆とりあえず使う
◇controllerのindex actionに書く
function index() {
$this->Deposit->recursive = 0;
$this->set(‘deposits’, $this->paginate());
}
◇viewのindex.ctp
▼以下は今何ページ目とか何件あるとか
「 Page 1 of 1, showing 2 records out of 2 total, starting on record 1, ending on 2 」のように表示される。
スポンサードリンク
<?php
echo $paginator->counter(array(
‘format’ => __(‘Page %page% of %pages%, showing %current% records out of %count% total, starting on record %start%, ending on %end%’, true)
));
?>
▼以下はテーブルのヘッダ。クリックするとソートされるように仕込まれる。
「 /deposits/index/page:1/sort:deposit/direction:asc 」こんな風に出力される。
<table cellpadding=”0″ cellspacing=”0″>
<tr>
<th><?php echo $paginator->sort(‘id’);?></th>
<th><?php echo $paginator->sort(‘customer_id’);?></th>
:
:
<th><?php echo $paginator->sort(‘created’);?></th>
<th><?php __(‘Actions’);?></th>
</tr>
▼次のページへのリンク
「 << previous| 1 | 2 next >> 」(customers/index/page:2)こんなふうに出力される。
<?php echo $paginator->prev(‘<< ‘.__(‘previous’, true), array(), null, array(‘class’=>’disabled’));?>
| <?php echo $paginator->numbers();?>
<?php echo $paginator->next(__(‘next’, true).’ >>’, array(), null, array(‘class’ => ‘disabled’));?>
◆オプションとか
◇controllerにデフォルトのソートを設定する
var $paginate = array(
‘order’ => array(
‘Deposit.created’ => ‘desc’
)
);
◆recursive はどこまでの情報を取ってくるかということらしい
recursive 取得可能な範囲
-1 カレントテーブルのみ(単体)
0 カレントテーブル+hasOne,belongsToの第1次アソシエーションテーブル
1 カレントテーブル+すべてのの第1次アソシエーションテーブル
2 上記 + subのsub,即ち第2次アソシエーションテーブル
3以上 上記 + 第3(以上)次のアソシエーションテーブル
(http://www.cpa-lab.com/tech/081 より引用)
参考文献
- recursiveの正しい理解CakePHP – CPA-LABテクニカル :
302 Found
コメント