sub restrict_Foo_resultset {
    my ($self, $fullset) = @_;
    my $keys = [ keys %{ $self->{hash} } ];
    my $restricted = $fullset->search({ id => {'-in' => $keys } });
    return $restricted;
}


--Guillermo Roditi (groditi)

On Mon, Mar 3, 2008 at 9:00 PM, James R. Leu <[EMAIL PROTECTED]> wrote:
> Hello,
>
>  I'm trying to use RestrictWithObject in my Catalyst app
>  to filter all of the results of queries to my Model by
>  checking if their keys are in hash that I put inside the
>  'Restricting Object'.  I've successfully gotten the
>  'restrict_Foo_resultset' to be called, but I'm stuck
>  when trying to build a result set to return.
>
>  I have some logic that sift through each row if the $fullset
>  and then tries to build a new $filterset to return.  No matter
>  how I build the $filterset, the app is getting access
>  to all of the rows in the $fullset.
>
>  Here is a my latest attempt at the restricting method:
>
>  sub restrict_Foo_resultset {
>     my $self = shift;
>     my $fullset = shift;
>     my $class = $fullset->result_class();
>
>     my @all;
>     while (my $item = $fullset->next()) {
>         if (defined($self->{hash}->{$item->id()})) {
>             push(@all, $item);
>         }
>     }
>
>     $fullset->reset();
>     $fullset->set_cache([EMAIL PROTECTED]);
>     return $fullset;
>  }
>
>  I've also tried:
>
>     $fullset->set_cache([EMAIL PROTECTED]);
>     return $fullset->search_rs();
>
>  Any pointers on the correct way to do this?
>
>  --
>  James R. Leu
>  [EMAIL PROTECTED]
>
> _______________________________________________
>  List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
>  IRC: irc.perl.org#dbix-class
>  SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
>  Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]
>

_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]

Reply via email to