Catalystでページ処理をしたいということで、Class::DBI::Pagerを使ってみたヨ。
my $pager = CD->pager(20, 1); # ($items_per_page, $current_page)
という感じで書いとけば、あとはよきにはからってくれる。
新しい順に取り出したいときなんかはORDER BY入れたいが、そんなときはこんな感じで。
sub default : Private {
my ( $self, $c ) = @_;
$c->stash->{page} = $c->request->param('page');
my $pager = Publicious::Model::CDBI::Items->pager(
$c->config->{items_per_page},$c->stash->{page} ||1);
$c->stash->{it} = $pager->retrieve_from_sql(
qq( 1 ORDER BY id DESC));
$c->forward('display');
}
search_likeとかもいける。あとでソースをきちんと読んでみよう。