On 6/19/07, John Napiorkowski <[EMAIL PROTECTED]> wrote:
--- John Goulah <[EMAIL PROTECTED]> wrote: > If I do something simple like this: > > my $myalums = [ > $c->model('MyDB::Alumni')->search({}, { rows => 20 > }) > ] ; > > and stash it: > $c->stash->{alumni} = $myalums; > > I am able to iterate in the template like: > > [% FOREACH alum IN alumni -%] > id: [% alum.alumni_id %] <br /> > [% END -%] > > > But if I try to iterate this in the controller, I > cannot do something like: > > while (my $alum = $myalums->next) { > $c->log->debug("id: ". $alum->alumni_id); > } Because ->next isn't a method on an array reference. You could try derefing via @$myalumns.
I have tried a few things here. I can get this to work: for my $element (@{$myalums}) { $c->log->debug("alum:". $element->alumni_id); } but not : while (my $alum = @{$myalums}->next) { $c->log->debug("id: ". $alum->alumni_id); } In this case I get: Can't call method "next" without a package or object reference I'm assuming I'm just doing something obviously wrong here? Thanks! John
_______________________________________________ List: Catalyst@lists.rawmode.org Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/ Dev site: http://dev.catalyst.perl.org/