Re: [CDBI] Weirdness trying to limit Class::DBI has_many relationship from TT template

[prev] [thread] [next] [Date index for 2005/10/13]

From: William Ross
Subject: Re: [CDBI] Weirdness trying to limit Class::DBI has_many relationship from TT template
Date: 10:10 on 13 Oct 2005
On 13 Oct 2005, at 10:40, Will Hawes wrote:

> I'm attempting to limit the results returned via a has_many  
> relationship using Class::DBI 0.96 and Template Toolkit 2.14.
>
> in My/Product.pm:
> __PACKAGE__->has_many(images => ['My::ProductImage' => 'image']);
>
> in My/ProductImage.pm:
> __PACKAGE__->has_a('image' => 'My::Image');
>
> This code works fine - only My::Images with image_type == 1 are  
> returned:
>
>  my $product = My::Product->retrieve(1);
>  my @images = $product->images(image_type => 1)
>
> Trying to do the same from a template doesn't work.
>
> [% images = product.images(image_type => 1); %]
>
> I have tried several variations of the above in my template (e.g.  
> replacing "=>" with "=", trying with and without "{}"), but to no  
> avail. In every case, all My::Image objects get returned and the  
> limit criteria are ignored. I don't understand why.

the => is a comma that happens to also quote its left hand argument.  
TT doesn't recognise it, so you need to spell it out:

[% images = product.images('image_type', 1) %]

should work.

will

_______________________________________________
ClassDBI mailing list
ClassDBI@xxxxx.xxxxxxxxxxxxxxxx.xxx
http://lists.digitalcraftsmen.net/mailman/listinfo/classdbi

Re: [CDBI] Weirdness trying to limit Class::DBI has_many relationship from TT template
William Ross 10:10 on 13 Oct 2005

Generated at 15:35 on 18 Oct 2005 by mariachi v0.52