my ($type, $op) = $key =~ m{:(.+)::(.+)};
my $is_multi = $key =~ s/:multi//;
- my @value_tokens = $is_multi ? parse_line('\s+', 0, $value) : ($value);
+ my $is_any = $key =~ s/:any//;
+ my @value_tokens = $is_multi || $is_any ? parse_line('\s+', 0, $value) : ($value);
($key, $method) = split m{::}, $key, 2;
($key, @filters) = split m{:}, $key;
next unless defined $key;
- push @result, $is_multi ? (and => [ @args ]) : @args;
+ push @result, $is_multi ? (and => [ @args ]) : $is_any ? (or => [ @args ]) : @args;
}
return \@result;
}
query => [
'customer.name' => 'John Doe',
- 'department.description' => [ like => '%Sales%' ],
+ 'department.description' => { ilike => '%Sales%' },
'orddate' => { lt => DateTime->today },
]
-
Unfortunately, if you specify them in your form as these strings, the form
parser will convert them into nested structures like this: