Empfehlungen: Erweiterte Suche

Validierungs Problem

Datenbankobjekte strukturieren und validieren

Validierungs Problem

Beitragvon nahri » Sa 8. Okt 2011, 16:59

Hallo allerseits,

ich hab da irgendwie ein kleines Problem mit der automatischen Formular-Validierung von CakePHP. Benutze den RC3 (Version 2.0). Ich hab die letzten paar Stunden damit verbracht den Fehler zu suchen, aber entweder sehe ich den Wald vor lauter Bäumen nicht mehr oder ich bin echt am Ende mit meinem Latein was das betrifft ...

Und zwar hab ich folgende Validierung:
(http://pastebin.com/HfgH3C5k)
oder hier ..
Code: Alles auswählen
var $validate = array(
            'loginname' => array(
                'minCharactersRule' => array(
                    'rule' => array('minLength', 3),
                ),
                'alphaNumericRule' => array(
                    'rule' => 'alphaNumeric',
                ),
                'uniqueRule' => array(
                    'rule' => 'isUnique',
                ),
                'on' => 'create',
                'required' => true,
                'allowEmpty' => false,
            ),

            'password' => array(
                'minCharactersRule' => array(
                    'rule' => array('minLength', 5),
                ),
                'required' => true,
                'allowEmpty' => false,
            ),

            'email' => array(
                'emailRule' => array(
                    'rule' => array('email'),
                ),
                'uniqueRule' => array(
                    'rule' => 'isUnique',
                ),
                'required' => true,
                'allowEmtpy' => false,
            ),

            'display_name' => array(
                'betweenRule' => array(
                    'rule' => array('between', 3, 20),
                ),
                'uniqueRule' => array(
                    'rule' => 'isUnique',
                ),
                'required' => true,
                'allowEmpty' => false,
            ),

            'registered' => array(
                'rule' => array('date', 'ymd'),
                'required' => false,
                'allowEmpty' => false,
                'on' => 'create'
            ),

            'status' => array(
                'rule' => 'numeric',
                'required' => false,
                'allowEmpty' => false,
                'on' => 'create'
            ),
        );


(Fehlermeldungen wurden zwecks i18n im View definiert)

Zu meinem Problem:

Fall 1: Ich gebe nichts ein, es werden Fehlermeldungen ausgespuckt, alles ok.

Fall 2: Ich gebe alle Werte gewissenhaft ein, die Validierung SOLLTE eigentlich keine Fehler ausgeben, allerdings krieg ich dann überall "(required)" Fehlermeldungen. debug($this->User->validationErrors) gibt folgendes:
Code: Alles auswählen
Array
(
    [loginname] => Array
        (
            [0] => required
        )

    [password] => Array
        (
            [0] => required
        )

    [email] => Array
        (
            [0] => required
        )

    [display_name] => Array
        (
            [0] => required
        )

)

(Vorab: Ich weiß was der Unterschied zwischen required und allowEmpty ist)

Außerdem tauchen auch noch ganz hässliche Warnings auf:
Code: Alles auswählen
Warning (2): preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash [CORE/Cake/Model/Model.php, line 2981]

Warning (2): preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash [CORE/Cake/Model/Model.php, line 2981]

Warning (2): preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash [CORE/Cake/Model/Model.php, line 2981]

Warning (2): preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash [CORE/Cake/Model/Model.php, line 2981]


Als ich das zum ersten Mal sah, hab ich auf einen Tippfehler spekuliert. Aber nach mehrmaligem Durchsehen konnte ich nichts finden. Oder hab ich doch etwas übersehen (wie gesagt sitze schon ein paar Stunden dadran und komme nicht weiter).
Hat jemand das selbe Problem (gehabt und gelöst)?

Danke schon mal für konstruktive Beiträge.

Gruß,
nahri
nahri
 
Beiträge: 1
Registriert: Sa 8. Okt 2011, 16:44

Re: Validierungs Problem

Beitragvon Jörg » So 9. Okt 2011, 10:45

Hi nahri,

ich glaube den Fehler wirst du nur durch das "Zurückverfolgen" ermitteln können.
Gehe doch mal im CakePHP-Core in die Model.php und in die Zeile, wo der Fehler auftreten soll.
Vielleicht bekommst du so heraus, wo der Fehler beim Validieren ein- und auftritt.

Code: Alles auswählen
CORE/Cake/Model/Model.php, line 2981


Da ich selbst mit CakePHP 2.x noch nicht gearbeitet habe, kann ich dir da leider nicht genauer weiterhelfen.

Grüße
Jörg
Jörg
 
Beiträge: 130
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu


Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast