[Catalyst] HOWTO: order_by a field in a related record, for paging
will at serensoft.com
will at serensoft.com
Sat Jun 12 14:22:30 GMT 2010
$c->model()->search( {}, {order_by=3D>???, page=3D>$page} )
How do we "order_by" a field from a related record when pulling a resultset?
We want to order users by team (then by lastname, firstname) and be able to
PAGE back and forth...
e.g. a User belongs_to a Team.
my $team_name =3D $c->user->team->name;
my $users =3D $c->model('My::User')
->search_rs( {}, {
order_by =3D> {
-asc =3D> ???user->team->name???, ###### howto?
-asc =3D> 'lastname',
-asc =3D> 'firstname',
},
page =3D> $page,
} );
We're wanting to order by team-name, then user-lastname, then
user-firstname.
Here's a perl sort AFTER we have the results:
my $user_collection =3D [
sort {
$a->team->name cmp $b->team->name ||
$a->lastname cmp $b->lastname ||
$a->firstname cmp $b->firstname
}
$users->all
];
But this approach doesn't allow for paging backward and forward over the
list...?
-- =
will trillich
"I think it would be worse to expect nothing than to be disappointed." --
Anne (with an 'e') Shirley
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20100612/91ad2=
240/attachment.htm
More information about the Catalyst
mailing list