X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FRelationship%2FCascadeActions.pm;h=71a28c032d2bf9a01ff968f1b3fb7c0ed41dd764;hb=9fa203be59c9064230822a5889d4936ffcedc110;hp=e1d1341177858283460f0a52ef4d9a54b5c5629b;hpb=4685e00665ca987cd3acae87bc1d988f8ab56b31;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Relationship/CascadeActions.pm b/lib/DBIx/Class/Relationship/CascadeActions.pm index e1d1341..71a28c0 100644 --- a/lib/DBIx/Class/Relationship/CascadeActions.pm +++ b/lib/DBIx/Class/Relationship/CascadeActions.pm @@ -9,7 +9,8 @@ sub delete { my $ret = $self->next::method(@rest); - my %rels = map { $_ => $self->relationship_info($_) } $self->relationships; + my $source = $self->result_source; + my %rels = map { $_ => $source->relationship_info($_) } $source->relationships; my @cascade = grep { $rels{$_}{attrs}{cascade_delete} } keys %rels; foreach my $rel (@cascade) { $self->search_related($rel)->delete; @@ -24,7 +25,8 @@ sub update { my $ret = $self->next::method(@rest); - my %rels = map { $_ => $self->relationship_info($_) } $self->relationships; + my $source = $self->result_source; + my %rels = map { $_ => $source->relationship_info($_) } $source->relationships; my @cascade = grep { $rels{$_}{attrs}{cascade_update} } keys %rels; foreach my $rel (@cascade) { $_->update for $self->$rel;