[Catalyst] iterating ResultSet in controller vs. template

Michael Reece mreece at vinq.com
Tue Jun 19 19:47:22 GMT 2007


i believe you are getting an array-ref because you are calling it in  
list context via the [ ... ] here.

   my $myalums  = [ $c->model('MyDB::Alumni')->search({}, { rows =>  
20  }) ] ;


try:

     my $myalums_iter  = $c->model('MyDB::Alumni')->search({}, { rows  
=> 20  });
     while (my $alum = $myalums_iter->next) { ... }


On Jun 19, 2007, at 11:16 AM, John Goulah wrote:

>
>
> On 6/19/07, John Napiorkowski <jjn1056 at yahoo.com> wrote:
>
> --- John Goulah <jgoulah at gmail.com> 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 at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/ 
> catalyst at lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/

---
michael reece :: software engineer :: mreece at vinq.com


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20070619/7c55e81e/attachment.htm


More information about the Catalyst mailing list