Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re^4: Querying data with and & or when using DBIx::Class

by phildeman (Sexton)
on Sep 17, 2013 at 20:31 UTC ( #1054536=note: print w/replies, xml ) Need Help??


in reply to Re^3: Querying data with and & or when using DBIx::Class
in thread Querying data with and & or when using DBIx::Class

Thanks again for your response.

I am using MooseX.

The issue is resolved. Instead of building the WHERE clause in $whrcls, I simply added the complete DBIx::Class search within the if/else statement:

method get_colors( $id, $color1, $color2 ){
    my @mycolor_objs;
    if(!$color2){
        @mycolor_objs = $schema->resultset( 'TblColors' )->search({ ID => $id, color => $color1 },
                                { order_by => 'ID' });
    }
    else {
        @myscolor_objs = $schema->resultset( 'TblColors' )->search({ ID => $id,
                                -or => [ color => $color1, color => $color2 ] },
                                { order_by => 'ID' });
    }
}

I am unsure at this moment, but it seems DBIx::Class is a little sensitive when using a scalar to represent the hash being passed as the WHERE clause. Thanks again. When I have a little more time, I will research building WHERE clauses with scalars.
  • Comment on Re^4: Querying data with and & or when using DBIx::Class

Replies are listed 'Best First'.
Re^5: Querying data with and & or when using DBIx::Class
by Your Mother (Chancellor) on Sep 17, 2013 at 20:48 UTC

    it seems DBIx::Class is a little sensitive when using a scalar...

    Don't confuse scalar for string just because a scalar often holds strings. They aren't the same. A hash ref can be put into a scalar ( my $hash_ref = \%some_hash or my $x = {}) and hash refs are the only kind of argument DBIC takes for its search and options clauses: never strings. There is no way to (safely and reliably) separate out the bind values and parse the intention of the tree from a string. Compare your original with what is necessary-

    print "ID => $id, color => $color1", $/; print { ID => $id, color => $color1 }, $/;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1054536]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2016-10-01 23:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?






    Results (9 votes). Check out past polls.