| DBIx-Class-Helpers documentation | Contained in the DBIx-Class-Helpers distribution. |
DBIx::Class::Helper::ResultSet::RemoveColumns - Remove columns from a ResultSet
version 2.007000
package MySchema::ResultSet::Bar;
use strict;
use warnings;
use parent 'DBIx::Class::ResultSet';
__PACKAGE__->load_components('Helper::ResultSet::RemoveColumns');
# in code using resultset:
my $rs = $schema->resultset('Bar')->search(undef, {
remove_columns => ['giant_text_col', 'password'],
});
This component allows convenient removal of columns from a select. Normally to do this you would do this by listing all of the columns except the ones you want to remove. This does that part for you. See NOTE in DBIx::Class::Helper::ResultSet for a nice way to apply it to your entire schema.
It doesn't get a lot more complicated than the synopsis. If you are interested in having more control, check out DBIx::Class::Helper::ResultSet::AutoRemoveColumns.
ArrayRef of columns to remove in the remove_columns search attribute. Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
This software is copyright (c) 2011 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.
| DBIx-Class-Helpers documentation | Contained in the DBIx-Class-Helpers distribution. |
package DBIx::Class::Helper::ResultSet::RemoveColumns; BEGIN { $DBIx::Class::Helper::ResultSet::RemoveColumns::VERSION = '2.007000'; } # ABSTRACT: Remove columns from a ResultSet sub _resolved_attrs { my $self = $_[0]; my $attrs = $self->{attrs}; # not copying on purpose... if ( $attrs->{remove_columns} ) { my %rc = map { $_ => 1 } @{$attrs->{remove_columns}}; $attrs->{columns} = [ grep { !$rc{$_} } $self->result_source->columns ] } return $self->next::method; } 1; __END__