X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Controller-DBIC-API.git;a=blobdiff_plain;f=lib%2FCatalyst%2FController%2FDBIC%2FAPI.pm;fp=lib%2FCatalyst%2FController%2FDBIC%2FAPI.pm;h=03b1f08a4ee4e5a3c36c0a43a0b4973102032e20;hp=5be57514ac596185bf195a999b98b7bdbc627c54;hb=c50b4fa47c6318d4a3611915eda4fa8f03f76240;hpb=1255be67332ece4bc28856c86bb34cc64f490bc5 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); } }