Hello,
The advice I got here was very useful but being abit of a novice I did
not find it clearly in the docs ... so here is abit of POD for the
FormFu CookBook that might help other novices see the light.
--- snip ---
=head2 Implement a unique username check.
A common task for a form is user registration. This usually requires
that the username
be unique. By way of example this is how it can be done (using a typical
Catalyst app)
package MyApp::FormFu::Constraint::Username;
use strict;
use base 'HTML::FormFu::Constraint';
sub constrain_value
{
my $self = shift;
my ( $value, $params) = @_;
my $c = $self->form->stash->{context};
my $matched = $c->model('DB::Users')->search( { username =>
$value } )->count;
$self->{message} = "Username already in use";
return ( $matched > 0 ) ? 0 : 1;
}
1;
Then in your formfu config
---
elements:
- type: Text
name: username
label: "Enter your desired username"
constraints:
- Required
- '+MyApp::FormFu::Constraint::Username'
For more info see the section 'Implement a custom constraint / validator'.
--- snip ---
On 05/07/10 14:00, Benjamin Martin wrote:
Hi Carl,
Thanks for the tip.. that sounds like an excellent, clean tidy way to
tackle my problem.
When I have got a solution ready I'll put some POD on here for the
CookBook if you want.
cheers,
-Ben
On 05/07/10 13:55, Carl Franks wrote:
Hi,
I'd recommend writing a custom constraint class, rather than using
Callback.
It just needs to inherit from HTML::FormFu::Constraint and have a sub
named 'constrain_value' which will receive the parameters ( $self,
$value, $params).
You can then access the Catalyst context via
$self->form->stash->{context}
It can also define a 'constrain_values' sub to override how multiple
values are handled, or override 'process' to take complete control -
see the source of HTML::FormFu::Constraint for details.
Carl
On 2 July 2010 09:27, Benjamin Martin<benja...@opusvl.com> wrote:
Hello,
In my catalyst app I have a method that is used for a Callback
constraint.
In my Root.pm controller use a session and log in a user the usual way.
package MyApp::Controller::ControllerA;
...
sub formfu_callback_checka
{
# need to validate using something in session?..
}
My question is, what is the best way to get hold of the session/user
data
from within my callback method?
thanks for any help, apologizes if this gets asked all the time,
-Ben
_______________________________________________
HTML-FormFu mailing list
HTML-FormFu@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
_______________________________________________
HTML-FormFu mailing list
HTML-FormFu@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
_______________________________________________
HTML-FormFu mailing list
HTML-FormFu@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
_______________________________________________
HTML-FormFu mailing list
HTML-FormFu@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu