2016-10-04 1 views
1

J'utilise HTML::FormHandler(with DBIC) et je veux mettre à jour un champ sur mon modèle qui dépend d'un autre domaine soumis sur le formulaire. HTML :: FormHandler a une section sur handling extra database fields, et il dit lorsqu'une ligne est créé de le faire avant update_model:HTML :: FormHandler avec DBIC mise à jour colonne de base de données supplémentaire avant update_model

before 'update_model' => sub { 
    my $self = shift; 

    $self->item->my_other_column(manipulate_value($self->field('my_field')); 
}; 

Cela fonctionne quand j'ajoute un nouvel élément, mais pas quand je le modifier. Lorsque je modifie l'élément my_field est mis à jour mais my_other_column ne l'est pas. Est-ce que quelqu'un sait comment je peux accomplir cela?

Répondre

0

before 'update_model' ne fonctionne que lorsque vous ajoutez un nouvel élément.

De docs: S'il y a un autre champ de base de données qui doit être mis à jour lorsqu'une ligne est créé, ajouter un attribut à la forme, et traiter ensuite avec before 'update_model'.

Essayez around 'update_model'.