Vlastní validace formuláře s pomocí DB

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kejlicz
Člen | 201
+
0
-

Ahoj všichni.

Prosím o radu. Zkouším validaci formulářového prvku, ke které potřebuji přístup do DB. není mi ale jasné, jak se přistupuje k DB ze statické funkce. Zatím jsem to nepotřeboval a teď tady již 2 hodiny marně hledám a zkouším.

Pravidlo přidávám takto

$form->addText("username", "Přihlašovací email")
                      ->addRule(\UserFormRules::USERNAME, "Tento email je již registrovaný");

userFormRules.php

<?php
	class UserFormRules
    {
        const USERNAME = 'UserFormRules::validateUsername';

        public static function validateUsername($formItem)
        {
            // TADY vyhodnotím prvek a vrátím true nebo false, ale nevím, jak se zde dostat k databázi
        }
    }

Díky moc za radu.

amik
Člen | 118
+
0
-

Validační pravidlo nemusí být jen statická metoda, ale libovolný callback, např.

$form->addText(...)->addRule(array($this, 'validateUsername'), 'Tento e-mail je již registrovaný');

Pozn. pokud neděláš databázi lakýrníků, používej raději „e-mail“ než „email“ ;)

kejlicz
Člen | 201
+
0
-

Díky moc za radu. Takhle je to ideální.