Paginatorで表示件数とか出すのが意外とめんどくさい。
viewにガシガシ書いていくのはなんかかっこ悪いので、PaginatorHelperを拡張してみました。
app/views/helper/spaginator.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?php
require_once "paginator.php";
class SpaginatorHelper extends PaginatorHelper
{
function limit($limit = null,$spname = "件"){
$model = $this->params['controller'];
if(!is_numeric($limit)){
$limit = 10;
}
if(!isset($this->params['paging'][$model]['defaults']['limit']) && $limit == 10){
$this->params['paging'][$model]['defaults']['limit'] = 10;
}
if(!isset($this->params['named']['limit'])){
$this->params['named']['limit'] = $this->params['paging'][$model]['defaults']['limit'];
}
if($this->params['named']['limit'] == $limit){
return $limit.$spname;
}
return $this->link("$limit$spname",array("limit" => $limit));
}
}
?>
|
とこんな感じに、Extendsさせてあげればおk。
あとはview側で、こんな風に書いてあげればいいんです。
1
2
3
4
|
表示件数:
<?php echo $spaginator->limit(10) ?> | <?php echo $spaginator->limit(20) ?> | <?php echo $spaginator->limit(50) ?>
</p>
|
これで、表示件数が楽に表示できます。