X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-DBIx-Class-ResultSet-RecursiveUpdate;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSet%2FRecursiveUpdate.pm;h=7275d1ef63844d5dad79d538e19b78a525e9142c;hp=880c0c2744a6bf748070720b55ae59fa872531f3;hb=c6ce25ccefcd1b746acd71bdaea2699931cd32b6;hpb=fdf7f6a07c1013e9fac4a076599a47892d7dd331 diff --git a/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm b/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm index 880c0c2..7275d1e 100644 --- a/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm +++ b/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm @@ -75,7 +75,7 @@ sub recursive_update { my $info = $object->result_source->relationship_info($name); $self->_update_relation( $name, $updates, $object, $info ); } - $self->_delete_empty_auto_increment($object); +# $self->_delete_empty_auto_increment($object); # don't allow insert to recurse to related objects - we do the recursion ourselves # $object->{_rel_in_storage} = 1; @@ -270,6 +270,7 @@ Then: =head1 DESCRIPTION +This is the first release - so treat it as experimental. You can feed the ->create method with a recursive datastructure and have the related records created. Unfortunately you cannot do a similar thing with update_or_create - this module @@ -302,12 +303,13 @@ then you need to inform recursive_update about additional predicate with a secon [ 'id' ] ); +This will work with a new DBIC release. For a many_to_many (pseudo) relation you can supply a list of primary keys from the other table - and it will link the record at hand to those and only those records identified by them. This is convenient for handling web forms with check boxes (or a SELECT box with multiple choice) that let you -update such (pseudo) relations. +update such (pseudo) relations. For a description how to set up base classes for ResultSets see load_namespaces in DBIx::Class::Schema.