SYNOPSIS
package MyApp::Schema::ResultSet::Foo;
__PACKAGE__->load_components(qw{Helper::ResultSet::Shortcut});
...
1;
And then elsewhere:
# let's say you grab a resultset from somewhere else my $foo_rs = get_common_rs() # but I'd like it sorted! ->order_by({ -desc => 'power_level' }) # and without those other dumb columns ->columns([qw/cromulence_ratio has_jimmies_rustled/]) # but get rid of those duplicates ->distinct # and put those straight into hashrefs, please ->hri # but only give me the first 3 ->rows(3);
DESCRIPTION
This helper provides convenience methods for resultset modifications.See ``NOTE'' in DBIx::Class::Helper::ResultSet for a nice way to apply it to your entire schema.
METHODS
distinct
$foo_rs->distinct # equivalent to... $foo_rs->search(undef, { distinct => 1 });
group_by
$foo_rs->group_by([ qw/ some column names /]) # equivalent to... $foo_rs->search(undef, { group_by => [ qw/ some column names /] });
order_by
$foo_rs->order_by({ -desc => 'col1' }); # equivalent to... $foo_rs->search(undef, { order_by => { -desc => 'col1' } });
You can also specify the order as a ``magic string'', e.g.:
$foo_rs->order_by('!col1') # ->order_by({ -desc => 'col1' }) $foo_rs->order_by('col1,col2') # ->order_by([qw(col1 col2)]) $foo_rs->order_by('col1,!col2') # ->order_by([{ -asc => 'col1' }, { -desc => 'col2' }]) $foo_rs->order_by(qw(col1 col2)) # ->order_by([qw(col1 col2)])
Can mix it all up as well:
$foo_rs->order_by(qw(col1 col2 col3), 'col4,!col5')
hri
$foo_rs->hri; # equivalent to... $foo_rs->search(undef, { result_class => 'DBIx::Class::ResultClass::HashRefInflator' });
rows
$foo_rs->rows(10); # equivalent to... $foo_rs->search(undef, { rows => 10 })
limit
This is an alias for "rows".
$foo_rs->limit(10); # equivalent to... $foo_rs->rows(10);
has_rows
A lighter way to check the resultset contains any data rather than calling "$rs->count".page
$foo_rs->page(2); # equivalent to... $foo_rs->search(undef, { page => 2 })
limited_page
$foo_rs->limited_page(2, 3); # equivalent to... $foo_rs->search(undef, { page => 2, rows => 3 })
columns
$foo_rs->columns([qw/ some column names /]); # equivalent to... $foo_rs->search(undef, { columns => [qw/ some column names /] });
add_columns
$foo_rs->add_columns([qw/ some column names /]); # equivalent to... $foo_rs->search(undef, { '+columns' => [qw/ some column names /] });
prefetch
$foo_rs->prefetch('bar'); # equivalent to... $foo_rs->search(undef, { prefetch => 'bar' });
results_exist
my $results_exist = $schema->resultset('Bar')->search({...})->results_exist;
Uses "EXISTS" SQL function to check if the query would return anything. Possibly lighter weight than the much more common "foo() if $rs->count" idiom.
null(@columns || \@columns)
$rs->null('status'); $rs->null(['status', 'title']);
not_null(@columns || \@columns)
$rs->not_null('status'); $rs->not_null(['status', 'title']);
like($column || \@columns, $cond)
$rs->like('lyrics', '%zebra%'); $rs->like(['lyrics', 'title'], '%zebra%');
not_like($column || \@columns, $cond)
$rs->not_like('lyrics', '%zebra%'); $rs->not_like(['lyrics', 'title'], '%zebra%');
AUTHOR
Arthur Axel ``fREW'' Schmidt <[email protected]>COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by Arthur Axel ``fREW'' Schmidt.This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.