Not sure if that's the best way to do it or if it's a good approach, but I have a trait which is applied to all result classes.
TraitFor::Result::ForceNULL; use strict; use warnings; my $null = undef; sub insert { my $self = shift; for my $col ($self->columns) { next unless defined $self->$col; next unless $self->$col eq ""; my $info = $self->result_source->column_info($col); $self->$col($null) if $info->{is_nullable}; } return $self->next::method(@_); } sub update { my $self = shift; my %to_update = $self->get_dirty_columns; return $self->next::method(@_) unless keys %to_update; for my $col (keys %to_update) { next unless $to_update{$col} eq ""; my $info = $self->result_source->column_info($col); $self->{_column_data}{$col} = $null if $info->{is_nullable}; } return $self->next::method(@_); } 1; Best regards On Thu, Mar 2, 2017 at 5:14 PM, Rajesh Kumar Mallah <mal...@redgrape.tech> wrote: > > By empty i mean string with length 0 ie '' > > __CODE__ > > > I am posting to rest endpoint Automagically generated via > Catalyst::Controller::DBIC::API there is no explicit code hand > written by me.And that is why looking for a global filter. > > There are three great virtues of a programmer; Laziness, Impatience and > Hubris -- Larry Wall. > > > > > Just curious: when you say "prefilled with nothing", you mean the field > is > > empty, or the field is filled with one or more white spaces (like " "), > or > > the field is a <select> with the first <option> having the attribute > > "value" equals to ""? Or something else? > > > > gil > > > > On Thu, Mar 02, 2017 at 10:25:27AM -0500, Rajesh Kumar Mallah wrote: > >> > >> Hi , > >> > >> I want to transform request parameters in GET & POST requests > >> so that any thing which is empty (string) gets converted/replaced > >> my perl's undef (and DBIC's NULL). > >> > >> Why i need that: > >> ==================== > >> I have edit form in my web app and some fields in the edit form > >> are prefilled with nothing. On submission the DB raises an exception > >> that an empty string is being inserted to a integer field. > >> > >> Hence I feel like having a global filter that turns all blanks to > >> undef. > >> > >> The question is where to put this global filter. > >> > >> Regds > >> mallah. > >> > >> > >> > >> > >> _______________________________________________ > >> List: Catalyst@lists.scsys.co.uk > >> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst > >> Searchable archive: > >> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ > >> Dev site: http://dev.catalyst.perl.org/ > > > > _______________________________________________ > > List: Catalyst@lists.scsys.co.uk > > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst > > Searchable archive: > > http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ > > Dev site: http://dev.catalyst.perl.org/ > > > > > > > > _______________________________________________ > List: Catalyst@lists.scsys.co.uk > Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst > Searchable archive: http://www.mail-archive.com/ > catalyst@lists.scsys.co.uk/ > Dev site: http://dev.catalyst.perl.org/ >
_______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/