Am 29.01.2012 20:42, schrieb Bernhard Graf:

The example above still requires the bind values to be defined
statically in the schema. I couldn't find any examples, about how to
specify bind values at execution time - e.g. likes this:

My::Schema::Artist->has_many(
cds_era => 'My::Schema::CD',
sub {
my $args = shift;

return {
"$args->{foreign_alias}.artist" => { -ident =>
"$args->{self_alias}.artistid" },
"$args->{foreign_alias}.year" => { '>', \'?', '<', \'?' },
};
}
);

...

$artist_rs->search_related('cds_era', {}, {bind => ['1979', '1990'])->next;


Isn't something like this possible?

Actually it does somehow!
Caveat: { '>', \'?', '<', \'?' } is a hash ref und so the elements appear in a random order, which is probably not the same as in the bind-array. :-(

At least it works for this case:

My::Schema::Artist->has_many(
  cds_year => 'My::Schema::CD',
  sub {
    my $args = shift;

    return {
"$args->{foreign_alias}.artist" => {-ident => "$args->{self_alias}.artistid"},
      "$args->{foreign_alias}.year"   => {-ident => '?'},
    };
  }
);

$artist_rs->search_related('cds_year', {}, {bind => ['1990']})->next;


Bernhard

_______________________________________________
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