Richard Jones wrote:

OK, first thoughts (without actually trying it), are that "runmode edit ($errs, $id)" would work OK for the error return from update(), but not when edit() is called from the query - as /myapp/edit/1 - since the value of '1' would get taken into $errs, leaving $id undef. No?

Actually, contrary to my initial expectation, it does seem to work. Calling runmode edit ($errs, $id) with /myapp/edit/1 puts the value of 1 into $id, and $errs is undef. This, I imagine, is a 'feature' :)

Returning an error from update() also populates $errs with the error hashref, and $id with the previous value of '1'. Very nice, and it means I can still use CAP::RD with ValidateRM.

So I wondered what would happen if put a few more vars in the runmode edit signature (?), like runmode edit ($foo, $bar, $errs, $id) { .. }

On first call to edit from the form - /myapp/edit/1 - I get:

$VAR1 = undef;
$VAR1 = undef;
$VAR1 = undef;
$VAR1 = '1';

but the error return from update() gives this:
$VAR1 = {
          'error_foo' => '« missing',
          'dfv_errors' => 1
        };
$VAR1 = undef;
$VAR1 = undef;
$VAR1 = '1';

So the first var gets the error hashref and the fourth one gets the id. Seems odd, but in practice it's not a problem as (hopefully) I wouldn't do anything as silly in a real app.
--
Richard Jones

#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################

Reply via email to