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;h=66d775e963612903ca67ba6d495e580be5e5408f;hp=0fe7635668de223966f5d04728a4a815ac8fcc8f;hb=d8921389b13be6d1126ffa240b0a795541e30273;hpb=8516bd760abada937d6e36871b0bae0a3b04c78d diff --git a/lib/Catalyst/Controller/DBIC/API.pm b/lib/Catalyst/Controller/DBIC/API.pm index 0fe7635..66d775e 100644 --- a/lib/Catalyst/Controller/DBIC/API.pm +++ b/lib/Catalyst/Controller/DBIC/API.pm @@ -766,8 +766,22 @@ insert_object_from_params sets the columns for the object, then calls ->insert sub insert_object_from_params { my ($self, $c, $object, $params) = @_; - $object->set_columns($params); + + my %rels; + while (my ($k, $v) = each %{ $params }) { + if (ref $v && !($v == JSON::Any::true || $v == JSON::Any::false)) { + $rels{$k} = $v; + } + else { + $object->set_column($k => $v); + } + } + $object->insert; + + while (my ($k, $v) = each %rels) { + $object->create_related($k, $v); + } } =method_protected delete_objects