Thread stehe auf dem Schlauch: Data::FormValidator::Constraints (5 answers)
Opened by Superfrank at 2009-03-17 11:58

Superfrank
 2009-03-17 11:58
#119478 #119478
User since
2006-09-05
164 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich schreibe gerade eine Webanwendung und will die Eingabevalidierung endlich mal von Anfang an in geordnete Bahnen lenken um die Validierung auch einfacher für andere Projekte verwenden zu können.

Verwenden tue ich CPAN:Data::FormValidator::Constraints und möchte eigene Constraints gemäß hier schreiben, allerdings erhalte ich die Fehlermeldung

Quote
Value for constraint_method 'test2' not a code reference or Regexp . Do you need func(), not 'func'? at /usr/lib/perl5/site_perl/5.8.8/Data/FormValidator.pm line 979.



Hier ist eine Beispielvalidierung die den Fhler erzeugt und aufs notwendige gekürzt ist:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/perl
use strict;
use warnings;
use Data::FormValidator::Constraints qw(:closures);
use Data::FormValidator;

my %input = (   input1 => 'eins',
                                input2 => 'zwei',
                                input3 => 'drei',
                                input4 => 'vier');


my $results = validate_input(\%input);

print "result=$results\n";

sub validate_input{
my $input_hash_ref = shift;
my $big_test = {
                        filters => 'trim',
                        required => [qw( input1 input2 input3 input4 )],

                constraint_methods => {
                    test1 => validate_test1( 'exists',
                                                {fields => [qw( input1 ) ]}
                                                ),
                test2 => validate_test2( 'exists',
                                {fields => [qw( input2 ) ]}
                                ),
                test3 => validate_test3( 'exists',
                                {fields     => [qw( input3  ) ]}
                                ),
                test4 => validate_test4( 'exists',
                                                {fields     => [qw( input4  ) ]}
                                                ),
                }
        };

    my $results = Data::FormValidator->check($input_hash_ref, $big_test);
return($results);
}

sub validate_test1{
return;
}

sub validate_test2{
return;
}

sub validate_test3{
return;
}

sub validate_test4{
return;
}



Ich kapier die Fehlermeldung einfach nicht :-/ Hab ich irgendein Zeichen übersehen oder etwas vergessen?

Hilfe!

Frank


edit: "return($results);" eingefügt
Last edited: 2009-03-17 12:12:49 +0100 (CET)

View full thread stehe auf dem Schlauch: Data::FormValidator::Constraints