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

Reply via email to