Search + paging partially working.
This commit is contained in:
parent
e90a76ba61
commit
a172325e4c
|
@ -5,9 +5,8 @@ use MyModel::Book;
|
|||
sub index ($self) {
|
||||
my $page_number = $self->param('page_number') // 1;
|
||||
my $book_model = MyModel::Book->new;
|
||||
my $book_page = $book_model->get_page($page_number);
|
||||
my $book_page = $book_model->get_page($page_number, $self->param('title_like'));
|
||||
$self->render(
|
||||
book_count => $book_model->count_all,
|
||||
book_page => $book_page
|
||||
);
|
||||
}
|
||||
|
|
|
@ -9,9 +9,12 @@ sub count_all ($self) {
|
|||
return $book_count;
|
||||
}
|
||||
|
||||
sub get_page ($self, $page_number = 1) {
|
||||
sub get_page ($self, $page_number = 1, $title_like = undef) {
|
||||
my $search_condition = (defined $title_like)
|
||||
? { "me.title" => { ilike => "\%$title_like\%" } }
|
||||
: undef;
|
||||
my $rs = $self->schema->resultset('Book')->search_rs(
|
||||
undef,
|
||||
$search_condition,
|
||||
{ prefetch => [ "author" ],
|
||||
order_by => [ "me.title " ],
|
||||
page => $page_number,
|
||||
|
|
|
@ -2,8 +2,14 @@
|
|||
% title 'Books';
|
||||
<h1>Book page</h1>
|
||||
|
||||
Book count is <%= $book_count %>.
|
||||
%= form_for book_page => begin
|
||||
%= label_for title_like => 'Title like'
|
||||
%= text_field title_like => flash('title_like')
|
||||
%= submit_button "Search"
|
||||
%= end
|
||||
|
||||
<p/>
|
||||
<%= $book_page->pager->total_entries %> books found.
|
||||
<p/>
|
||||
<div>
|
||||
<table>
|
||||
|
|
Loading…
Reference in New Issue