[Dbix-class] Pagination Troubles
Jason Galea
lists at eightdegrees.com.au
Sat Feb 7 12:17:56 GMT 2009
Hi fREW,
I would do something like: (not tested)
sub basic_data {
my $self = shift;
my $params = shift;
my $table = $params->{table};
my $search = $params->{search};
my $columns = $params->{columns};
use DBIx::Class::ResultClass::HashRefInflator;
my $rs_full = $self->schema()->resultset($table)->search($search,{
order_by => $self->query->param('sort')."
".$self->query->param('dir') || 'id',
columns => $columns
});
my $total = $rs_full->count;
my $rs = $rs_full->search({},{
rows => $self->query->param('limit') || 25,
});
$rs->result_class('DBIx::Class::ResultClass::HashRefInflator');
my $data = { total => $total, data => []};
while (my $operation_code = $rs->next() ) {
push @{$data->{data}}, $operation_code;
}
return $self->json_body($data);
}
cheers,
J
fREW Schmidt wrote:
> Hi all!
>
> I am trying to paginate some results and I need to get the count of
> the full results. I tried to use count and that only gives the amount
> that are in the current result set. I tried to do this:
> http://lists.scsys.co.uk/pipermail/dbix-class/2006-April/001204.html
> But got errors about trying to call pager on non-paged data. Here is
> my code:
>
> sub basic_data {
> my $self = shift;
> my $params = shift;
>
> my $table = $params->{table};
> my $search = $params->{search};
> my $columns = $params->{columns};
>
> use DBIx::Class::ResultClass::HashRefInflator;
>
> my $rs = $self->schema()->resultset($table)->search($search,{
> rows => $self->query->param('limit') || 25,
> order_by => $self->query->param('sort')."
> ".$self->query->param('dir') || 'id',
> columns => $columns
> });
>
> $rs->result_class('DBIx::Class::ResultClass::HashRefInflator');
>
> my $data = { data => []};
>
> while (my $operation_code = $rs->next() ) {
> push @{$data->{data}}, $operation_code;
> }
> $data->{total} = $rs->count;
>
> return $self->json_body($data);
> }
>
>
> Can anyone tell me what I should be doing?
>
>
> --
> fREW Schmidt
> http://blog.afoolishmanifesto.com
> ------------------------------------------------------------------------
>
> _______________________________________________
> List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
> Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk
More information about the DBIx-Class
mailing list