From: Alexander Hartmaier Date: Wed, 19 Oct 2011 16:06:05 +0000 (+0200) Subject: Use the column accessor instead of set_column when inserting new objects X-Git-Tag: 2.004002~3 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Controller-DBIC-API.git;a=commitdiff_plain;h=c50b4fa47c6318d4a3611915eda4fa8f03f76240 Use the column accessor instead of set_column when inserting new objects --- diff --git a/Changes b/Changes index 3104b27..f8f469e 100644 --- a/Changes +++ b/Changes @@ -2,7 +2,10 @@ Revision history for Catalyst-Controller-DBIC-API: {{ $dist->version }} {{ $NEXT }} +- Use the column accessor instead of set_column when inserting new objects + 2.004001 2011-08-19 16:17:53 Europe/Vienna + - Changed stored_model and stored_result_source attributes to methods for ACCEPT_CONTEXT/Catalyst::Component::InstancePerContext compatibility diff --git a/lib/Catalyst/Controller/DBIC/API.pm b/lib/Catalyst/Controller/DBIC/API.pm index 5be5751..03b1f08 100644 --- a/lib/Catalyst/Controller/DBIC/API.pm +++ b/lib/Catalyst/Controller/DBIC/API.pm @@ -818,12 +818,18 @@ sub insert_object_from_params my ($self, undef, $object, $params) = @_; my %rels; - while (my ($k, $v) = each %{ $params }) { - if (ref($v) && !(reftype($v) eq reftype(JSON::true))) { - $rels{$k} = $v; + while (my ($key, $value) = each %{ $params }) { + if (ref($value) && !(reftype($value) eq reftype(JSON::true))) { + $rels{$key} = $value; } + # accessor = colname + elsif ($object->can($key)) { + $object->$key($value); + } + # accessor != colname else { - $object->set_column($k => $v); + my $accessor = $object->result_source->column_info($key)->{accessor}; + $object->$accessor($value); } }