我正在使用DBIx::Class::ResultSet来查询项目并对我的数据进行分页。这是我使用的查询:
my $clients = $c->model('DB::User')->search(
{ active_yn => 'y', client_yn => 'y' },
{
columns => [qw/id first_name last_name username email/],
order_by => ['last_name'],
page => ($c->req->param('page') || 1),
rows => 20,
}
);
有一次,我得到了结果集,我循环遍历Template::Toolkit中的结果,如下所示:
[% WHILE (client = clients.next) %]
<tr>
<td>[% client.first_name %] [% client.last_name %]</td>
</tr>
[% END %]
我的问题是,每次我打电话都会next
发出一个新的查询吗?我不清楚,因为all方法说它返回集合中的所有元素,那么第一个查询不这样做吗?我想尽可能高效。谢谢!