[Dbix-class] Overriding Standard Methods
Dave Cross
dave at dave.org.uk
Wed Dec 3 15:19:35 GMT 2008
I think I'm missing something obvious here. Feel free to point out my
stupidity.
I have a set of DBIC classes that have been generated by Schema::Loader.
I want to overload the "delete" method so that instead of actually
deleting the row the deleted flag gets set to true[1].
I can add a method to the class like this:
sub rm {
my $self = shift;
$self->deleted(1);
$self->update;
}
and call "rm" instead of "delete". Then everything works. But I don't
want to call the method "rm", I want to call it "delete". If I call it
delete, then my method doesn't get called. It goes into
DBIx::Class::Relationship::CascadeActions::delete and that passes
control to DBIx::Class::Row::delete - completely missing my method.
What am I missing?
Cheers,
Dave...
[1] Yes, this should be a trigger. But triggers are banned from this
database.
More information about the DBIx-Class
mailing list