[Dbix-class] How to find updated fields

Guillermo Roditi groditi at gmail.com
Fri Mar 23 01:51:59 GMT 2007


I think you could possibly implement this as a component that wraps
update, delete, or insert and the use get_dirty_columns et al.

eg

sub update{
    my ( $self, $upd, @rest ) = @_;
    my %cols = $obj->get_dirty_columns;
    %cols = (%cols, %$upd) if( ref $upd );
    warn( "Updated: ". join(", ", keys %cols)  );
    $self->next::method($upd, @rest);
}

On 3/22/07, RA Jones <ra.jones at dpw.clara.co.uk> wrote:
> Rob Kinyon wrote:
> > On 3/22/07, RA Jones <ra.jones at dpw.clara.co.uk> wrote:
> >> In my applications I frequently record in a log file which fields
> >> were updated by which users. Is there an easy way in DBIC to find
> >> out which fields got updated during an update() or
> >> update_or_insert() action? Thanks.
> >
> > Look for the get_dirty_columns() method on the Row object.
> Thanks, I had just scanned the DBIC::Row manual, and managed to miss
> that one - is_changed() looked promising, but it appears to be only for
> uncommitted changes.
> --
> Richard Jones
> Leeds, UK
> mailto:ra.jones at dpw.clara.co.uk
>
> _______________________________________________
> List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
> Wiki: http://dbix-class.shadowcatsystems.co.uk/
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
> Searchable Archive: http://www.mail-archive.com/dbix-class@lists.rawmode.org/
>



More information about the Dbix-class mailing list