Search + paging partially working.

This commit is contained in:
barnold 2022-09-18 12:17:11 +01:00
parent e90a76ba61
commit a172325e4c
3 changed files with 13 additions and 5 deletions

View File

@ -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
);
}

View File

@ -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,

View File

@ -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>