Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

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

by phildeman (Acolyte)
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
Re^5: Querying data with and & or when using DBIx::Class
by Your Mother (Canon) 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 chanting in the Monastery: (6)
As of 2014-07-13 19:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (251 votes), past polls