]> Dogcows Code - chaz/p5-DBIx-Class-ResultSet-RecursiveUpdate/blobdiff - lib/DBIx/Class/ResultSet/RecursiveUpdate.pm
hashrefs in m2m
[chaz/p5-DBIx-Class-ResultSet-RecursiveUpdate] / lib / DBIx / Class / ResultSet / RecursiveUpdate.pm
index 39366e714674d98aa619de482be6f46e0aa83662..2dc40cba4f7ba698cddb0b5befa90d60a1420249 100644 (file)
@@ -55,10 +55,16 @@ sub recursive_update {
         # many to many case
         if( $self->is_m2m( $name ) ) {
                 my ( $pk ) = $self->_get_pk_for_related( $name );
-                my @values = @{$updates->{$name}};
                 my @rows;
                 my $result_source = $object->$name->result_source;
-                @rows = $result_source->resultset->search({ $pk => [ @values ] } ) if @values; 
+                for my $elem ( @{$updates->{$name}} ){
+                    if( ref $elem ){
+                        push @rows, $result_source->resultset->find( $elem );
+                    }
+                    else{
+                        push @rows, $result_source->resultset->find( { $pk => $elem } );
+                    }
+                }
                 my $set_meth = 'set_' . $name;
                 $object->$set_meth( \@rows );
         }
This page took 0.01691 seconds and 4 git commands to generate.