2008-10-06
Catalyst+DBIC+TT+Data::Page::Navigationでページング
これもよく使うくせによく忘れるので備忘。
まずはCatalystのControllerでData::Page::Navigationをuseして
MyApp::Controller::User
package MyApp::Controller::User use strict; use warnings; use parent 'Catalyst::Controller'; use Data::Page::Navigation; sub index : Path : Args(0) { my ( $self, $c ) = @_; my $page = $c->req->param('page') || 1; my $rows = $c->req->param('rows') || 10; my $users = $c->model('DBIC::Users')->search( {}, { page => $page, rows => $rows, } ); $c->stash->{users} = $users; $c->stash->{template} = 'user/list.tt'; } 1;
で、テンプレートは
root/templates/user/list.tt
<html> ... snip [% SET pager = users.pager %] <div class="page-stats"> [% pager.total_entries %]件中 [% pager.first %] - [% pager.last %]件目 </div> <div id="users"> [% WHILE (user = users.next) %] ...snip... [% END %] </div> <div class="page-navi"> <a href="[% c.req.uri_with(page => pager.first_page) %]">« First</a> [% IF pager.previous_page %]<a href="[% c.req.uri_with(page => pager.previous_page) %]">‹ Prev</a>[% ELSE %]‹ Prev[% END %] [% FOREACH page IN pager.pages_in_navigation -%] [% IF page == pager.current_page %][% page %] [% ELSE %]<a href="[% c.req.uri_with(page => page) %]">[% page %] </a>[% END %] [% END -%] [% IF pager.next_page %]<a href="[% c.req.uri_with(page => pager.next_page) %]">Next ›</a>[% ELSE %]Next ›[% END %] <a href="[% c.req.uri_with(page => pager.last_page) %]">Last »</a> </div> </body> </html>
そーすっとこんな感じないけてるページャが簡単に表示できる。
参考:
トラックバック - http://d.hatena.ne.jp/hide-K/20081006/1223273646
リンク元
- 16 http://reader.livedoor.com/reader/
- 6 http://b.hatena.ne.jp/t/catalyst?sort=eid
- 6 http://b.hatena.ne.jp/t/perl
- 4 http://discypus.jp/wiki/?ソフト/Bug Tracking/trac/未整理2008
- 4 http://fastladder.com/reader/
- 3 http://b.hatena.ne.jp/add?mode=confirm&title=%u6700%u8FD1%u4F7F%u3063%u3066%u308BCatalyst%u306A%u30A2%u30D7%u30EA%u30B1%u30FC%u30B7%u30E7%u30F3%u306E%u30C7%u30A3%u30EC%u30AF%u30C8%u30EA%u69CB%u6210 - %u306F%u3066%u306A#hide-k&url=http://d.hatena.n
- 2 http://anond.hatelabo.jp/20080605163745
- 2 http://d.hatena.ne.jp/yto/20080820/p9
- 2 http://www.google.co.jp/search?hl=ja&q=Perl+ベンチ&lr=&aq=f&oq=
- 2 http://www.google.co.jp/search?num=100&hl=ja&rlz=1G1GGLQ_JAJP262&q=subversion+リポジトリ+ミラー&btnG=検索&lr=lang_ja



